{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/developers/cvp/schema/cvp-evidence-1.0.json",
  "title": "CVP Evidence Manifest",
  "type": "object",
  "required": [
    "protocol",
    "document_status",
    "calculator",
    "profile",
    "status",
    "runner",
    "environment",
    "suite",
    "obligation_set",
    "controls",
    "tests",
    "coverage",
    "reference",
    "numerical",
    "artifacts",
    "attestation",
    "timestamps"
  ],
  "properties": {
    "protocol": {
      "type": "object",
      "required": [
        "name",
        "version"
      ],
      "properties": {
        "name": {
          "const": "CVP"
        },
        "version": {
          "type": "string"
        },
        "revision": {
          "type": "string",
          "description": "ISO date of the Proposed spec text used for this run. Version alone is not a content pin while Proposed."
        },
        "spec_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$",
          "description": "SHA-256 of the published CVP spec document used for this run"
        },
        "spec": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "document_status": {
      "type": "string",
      "enum": [
        "proposed",
        "stable",
        "deprecated"
      ]
    },
    "calculator": {
      "type": "object",
      "required": [
        "id",
        "version"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "formula_family": {
          "type": "string"
        },
        "capability_id": {
          "type": "string"
        },
        "verification_revision": {
          "type": "string",
          "description": "CVP batch id for a calculator version. Distinct from calculation_version."
        },
        "related_capability": {
          "type": "object",
          "description": "Single related calculator in the same formula family (e.g. inverse).",
          "required": ["capability_id"],
          "properties": {
            "capability_id": { "type": "string" },
            "version": { "type": "string" },
            "relation": { "type": "string" }
          }
        },
        "related_capabilities": {
          "type": "array",
          "items": {
            "type": "object",
            "required": ["capability_id"],
            "properties": {
              "capability_id": { "type": "string" },
              "version": { "type": "string" },
              "relation": { "type": "string" }
            }
          }
        }
      }
    },
    "profile": {
      "type": "string",
      "enum": [
        "core",
        "engineering",
        "numerical"
      ]
    },
    "verified_scope": {
      "type": "string"
    },
    "deferred_scope": {
      "type": "string",
      "description": "Published calculator surface that is legacy-tested but not in this Manifest's CVP O2 claim scope."
    },
    "unit_contract": {
      "type": "object",
      "properties": {
        "model": { "type": "string" },
        "conversion": { "type": "string" },
        "mixed_unit_input": { "type": "string" }
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "VERIFIED",
        "PARTIAL",
        "STALE",
        "FAILED",
        "NOT_VERIFIED"
      ],
      "description": "Composite Trust projection (verification_status + production_freshness). VERIFIED is illegal unless attestation is CURRENT."
    },
    "verification_status": {
      "type": "string",
      "enum": [
        "VERIFIED",
        "PARTIAL",
        "FAILED",
        "NOT_VERIFIED"
      ],
      "description": "Suite obligation result excluding CVP-PROD-01. Independent of production freshness."
    },
    "production_freshness": {
      "type": "string",
      "enum": [
        "CURRENT",
        "STALE",
        "ABSENT"
      ],
      "description": "Production attestation bind of cvp_core_sha256. Overlay-only; MUST NOT enter the core digest."
    },
    "overall_trust": {
      "type": "string",
      "enum": [
        "VERIFIED",
        "VERIFIED_STALE",
        "VERIFIED_UNATTESTED",
        "PARTIAL",
        "FAILED",
        "NOT_VERIFIED"
      ],
      "description": "Machine overall trust. VERIFIED_STALE means suite passed and production freshness is STALE."
    },
    "runner": {
      "type": "object",
      "required": [
        "name",
        "version"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      }
    },
    "environment": {
      "type": "object",
      "required": [
        "runtime",
        "runtime_version",
        "numeric_model"
      ],
      "properties": {
        "runtime": {
          "type": "string"
        },
        "runtime_version": {
          "type": "string"
        },
        "numeric_model": {
          "type": "string",
          "description": "Algorithm numeric representation (e.g. IEEE-754 binary64, exact_integer, exact_rational). Distinct from the host runtime."
        },
        "runtime_numeric_environment": {
          "type": "string",
          "description": "Host runtime numeric environment (e.g. Node/V8). Not the algorithm numeric model."
        },
        "runtime_engine": {
          "type": "string",
          "description": "Host JS engine (e.g. v8). Distinct from the algorithm numeric model."
        },
        "os": {
          "type": "string"
        }
      }
    },
    "suite": {
      "type": "object",
      "required": [
        "id",
        "version"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "verification_revision": {
          "type": "string"
        }
      }
    },
    "obligation_set": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "provenance": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "direct",
            "derived",
            "mixed"
          ]
        },
        "sources": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "label"
            ],
            "properties": {
              "label": {
                "type": "string"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "standard",
                  "textbook",
                  "datasheet",
                  "application_note",
                  "peer_reviewed",
                  "derived",
                  "other"
                ]
              },
              "reference": {
                "type": "string"
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        },
        "derivation": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "upstream": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "id",
                  "version"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "reference": {
      "type": "object",
      "required": [
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "required": [
              "class"
            ],
            "anyOf": [
              {
                "required": [
                  "reference_scope"
                ]
              },
              {
                "required": [
                  "scope"
                ]
              }
            ],
            "properties": {
              "class": {
                "type": "string",
                "enum": [
                  "O1",
                  "O2",
                  "O3",
                  "O4"
                ]
              },
              "reference_scope": {
                "type": "string",
                "enum": [
                  "model",
                  "expected_values",
                  "numerical_behavior",
                  "all"
                ],
                "description": "Erratum E1: what this independent reference independently supports. Normative field name."
              },
              "scope": {
                "type": "string",
                "enum": [
                  "model",
                  "expected_values",
                  "numerical_behavior",
                  "all"
                ],
                "description": "Deprecated alias of reference_scope. Runners MUST emit reference_scope; scope MAY be duplicated for older consumers."
              },
              "label": {
                "type": "string"
              },
              "engine": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "precision_bits": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "independent_of_iut": {
                    "type": "boolean"
                  },
                  "same_runtime_as_iut": {
                    "type": "boolean"
                  },
                  "library": {
                    "type": "string"
                  },
                  "mpmath_dps": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "rounding": {
                    "type": "string"
                  },
                  "backend": {
                    "type": "string"
                  },
                  "generator_version": {
                    "type": "string"
                  },
                  "generator_sha256": {
                    "type": "string"
                  },
                  "table_sha256": {
                    "type": "string"
                  },
                  "seed": {
                    "type": "string"
                  },
                  "source": {
                    "type": "string"
                  },
                  "public_table": {
                    "type": "string"
                  },
                  "public_generator": {
                    "type": "string"
                  },
                  "public_checker": {
                    "type": "string"
                  },
                  "runtime": {
                    "type": "string"
                  },
                  "numeric_model": {
                    "type": "string"
                  },
                  "representation": {
                    "type": "string"
                  },
                  "criterion": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "controls": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "required": [
          "result"
        ],
        "properties": {
          "result": {
            "type": "string",
            "enum": [
              "PASS",
              "FAIL",
              "SKIP",
              "PENDING"
            ]
          },
          "applicability": {
            "type": "string",
            "enum": [
              "required",
              "applicable",
              "not_applicable",
              "optional",
              "higher_assurance"
            ]
          },
          "notes": {
            "type": "string"
          },
          "check_result": {
            "type": "string",
            "enum": [
              "PASS",
              "FAIL",
              "SKIP",
              "PENDING"
            ],
            "description": "Alias of result. For CVP-PROD-01: whether the production-state check itself executed cleanly."
          },
          "production_state": {
            "type": "string",
            "enum": [
              "CURRENT",
              "STALE",
              "ABSENT"
            ],
            "description": "Observed production freshness. Distinct from check_result/result."
          },
          "binding_current": {
            "type": "boolean",
            "description": "True iff the attestation snapshot still names this cvp_core_sha256."
          }
        }
      }
    },
    "tests": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "required": [
          "passed",
          "total"
        ],
        "properties": {
          "passed": {
            "type": "integer",
            "minimum": 0
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "failed": {
            "type": "integer",
            "minimum": 0
          },
          "seed": {
            "type": "string"
          },
          "generator_id": {
            "type": "string"
          },
          "generator_version": {
            "type": "string"
          },
          "table_sha256": {
            "type": "string"
          },
          "max_error_ulp": {
            "type": "number"
          },
          "exact_mismatches": {
            "type": "integer",
            "minimum": 0
          },
          "criterion": {
            "type": "string"
          },
          "checker_url": {
            "type": "string"
          },
          "reproduce": {
            "type": "string"
          },
          "table_url": {
            "type": "string"
          },
          "generator_url": {
            "type": "string"
          },
          "reproduce_url": {
            "type": "string"
          },
          "claim_scope": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "definition_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "case_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "comparison": {
            "type": "string",
            "description": "How this suite compares IUT to reference. exact_error_match is for illegal-input codes; it is not ULP."
          },
          "records": {
            "type": "array",
            "description": "Non-ULP comparison records (e.g. exact error-code match).",
            "items": {
              "type": "object",
              "required": ["id"],
              "properties": {
                "id": { "type": "string" },
                "comparison": { "type": "string" },
                "expected": {},
                "actual": {},
                "match": { "type": "boolean" }
              }
            }
          }
        }
      }
    },
    "coverage": {
      "type": "object",
      "required": [
        "partitions"
      ],
      "properties": {
        "partitions": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "exercised"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "exercised": {
                "type": "boolean"
              },
              "case_count": {
                "type": "integer",
                "minimum": 0
              }
            }
          }
        }
      }
    },
    "numerical": {
      "type": "object",
      "required": [
        "representation",
        "tolerance"
      ],
      "properties": {
        "representation": {
          "type": "string",
          "description": "IUT numeric representation, e.g. IEEE-754 binary64, exact_integer, or exact_rational."
        },
        "arithmetic": {
          "type": "string",
          "description": "IUT arithmetic, e.g. BigInt. Not applicable for every profile."
        },
        "comparison": {
          "type": "string",
          "description": "Acceptance comparison, e.g. exact_equality or ulp."
        },
        "profile": {
          "type": "string"
        },
        "ulp_applicable": {
          "type": "boolean",
          "description": "false for exact_integer. ULP fields MUST NOT be emitted when false."
        },
        "tolerance": {
          "type": "object",
          "required": [
            "type",
            "value",
            "rationale",
            "declared_before_evaluation"
          ],
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "absolute",
                "relative",
                "ulp",
                "composite",
                "exact"
              ]
            },
            "value": {
              "type": "number"
            },
            "rationale": {
              "type": "string"
            },
            "declared_before_evaluation": {
              "type": "boolean",
              "const": true
            }
          }
        },
        "max_error_observed": {
          "type": "number"
        },
        "exact_mismatches": {
          "type": "integer",
          "minimum": 0
        },
        "criterion": {
          "type": "string"
        },
        "exact_policy": {
          "type": "boolean"
        },
        "legacy_regression_notes": {
          "type": "string"
        },
        "claim_scope": {
          "type": "string",
          "description": "Domain of the ULP/tolerance claim (e.g. tabulated O3 vectors only, not the entire input set)."
        },
        "operate_tolerance": {
          "type": "object",
          "description": "Distinct numerical policy for arithmetic/operate mode; must not reuse convert coefficient-ULP.",
          "required": [
            "type",
            "value",
            "rationale",
            "declared_before_evaluation"
          ],
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "number"
            },
            "rationale": {
              "type": "string"
            },
            "declared_before_evaluation": {
              "type": "boolean",
              "const": true
            }
          }
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "reference": {},
              "actual": {},
              "error_ulp": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "threshold_ulp": {
                "type": "number"
              },
              "criterion": {
                "type": "string"
              },
              "match": {
                "type": "boolean"
              },
              "comparison": {
                "type": "string",
                "description": "Numeric records use ULP; illegal-input codes must not appear here with error_ulp."
              },
              "digits": {
                "type": "integer",
                "minimum": 0
              },
              "reference_sha256": {
                "type": "string"
              },
              "actual_sha256": {
                "type": "string"
              },
              "suite": {
                "type": "string"
              },
              "hops": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "interfaces": {
      "type": "object",
      "properties": {
        "compared": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "result": {
          "type": "string",
          "enum": [
            "PASS",
            "FAIL",
            "SKIP",
            "PENDING"
          ]
        }
      }
    },
    "artifacts": {
      "type": "object",
      "required": [
        "evidence_bundle_sha256"
      ],
      "properties": {
        "evidence_bundle_sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "SHA-256 of legacy Evidence JSON file bytes (digest_scope=evidence_bundle_bytes). Not the CVP fingerprint and not the Evidence core used for Trust freshness."
        },
        "evidence_digest": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Alias of cvp_core_sha256 (historical name). SHA-256 of the CVP verification fingerprint v2 (digest_scope=cvp_verification_fingerprint_v2). MUST exclude attestation/live-status and Evidence contract counts. Agents MUST NOT confuse this with evidence_core_sha256 (artifact_evidence_sha256) or attested_catalog_sha256 (evidence_catalog_digest)."
        },
        "cvp_core_sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Immutable Verification Core digest (same bytes as evidence_digest). Production attestation binds this value; Trust Overlay updates MUST NOT change it."
        },
        "production_sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "SHA-256 of the bound production attestation report. Distinct from cvp_evidence_digest (artifacts.evidence_digest) and evidence_bundle_sha256."
        },
        "attested_catalog_sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Alias name: evidence_catalog_digest. Integrity digest of the attested capability catalog (digest_scope=capability_catalog). Unsigned binding — not a signature."
        },
        "digest_registry": {
          "type": "object",
          "description": "Machine-readable map of digest names → scopes. Clarifies that artifact_evidence_sha256, cvp_evidence_digest, and evidence_catalog_digest hash different subjects.",
          "properties": {
            "digest_algorithm": {
              "type": "string",
              "const": "sha256"
            },
            "canonicalization": {
              "type": "string",
              "description": "JSON canonicalization used for structured digests (UTF-8, sorted object keys)."
            },
            "entries": {
              "type": "array",
              "items": {
                "type": "object",
                "required": ["name", "digest_scope", "field"],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Interop name (e.g. cvp_evidence_digest)."
                  },
                  "field": {
                    "type": "string",
                    "description": "Existing Manifest / Evidence / attestation field path."
                  },
                  "digest_scope": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  "note": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "manifest_sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "source_commit": {
          "type": "string"
        },
        "production_checks": {
          "type": "array",
          "description": "Last attest:production snapshot items bound into this Manifest. Not a live PASS claim; use attestation_binding_current=false when attestation is STALE.",
          "items": {
            "type": "object",
            "required": ["id", "status"],
            "properties": {
              "id": { "type": "string" },
              "status": { "type": "string" },
              "detail": { "type": "string" },
              "scope": {
                "type": "string",
                "const": "last_attestation_snapshot"
              },
              "current": {
                "type": "boolean",
                "description": "Deprecated alias of attestation_binding_current. true while this snapshot still binds the Manifest's CURRENT attestation."
              },
              "attestation_binding_current": {
                "type": "boolean",
                "description": "true while this last_attestation_snapshot still binds the live evidence digest (attestation CURRENT). Not 'executed just now'."
              },
              "projection_compared": {
                "type": "boolean",
                "description": "false when the check compared immutable Evidence identity only, not live VERIFIED/CURRENT projection."
              },
              "observed_live_projection_at_attestation": {
                "type": "string",
                "description": "Live CVP status observed when the snapshot was taken. Not part of identity match."
              },
              "attested_at": {
                "type": "string",
                "format": "date-time"
              },
              "attestation_revision": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "dependencies": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "version"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "capability_id": {
            "type": "string"
          },
          "evidence": {
            "type": "string"
          },
          "evidence_digest": {
            "type": "string"
          }
        }
      }
    },
    "attestation": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "CURRENT",
            "STALE",
            "ABSENT"
          ]
        },
        "attested_at": {
          "type": "string",
          "format": "date-time",
          "description": "First production bind of this evidence_digest (alias of evidence_attested_at)."
        },
        "evidence_attested_at": {
          "type": "string",
          "format": "date-time",
          "description": "First production bind of this evidence_digest."
        },
        "last_confirmed_current_at": {
          "type": "string",
          "format": "date-time",
          "description": "Latest site-wide production report that still confirms this digest CURRENT."
        },
        "site_attestation_current": {
          "type": "boolean",
          "description": "Whether the site-wide attestation report is CURRENT (scope=all)."
        },
        "capability_attestation_current": {
          "type": "boolean",
          "description": "Whether this capability's attestation is CURRENT, independent of site-wide status."
        },
        "bound_snapshot": {
          "type": "object",
          "description": "Site-wide production report as observed when this Manifest was bound. Not live site status.",
          "properties": {
            "status": {
              "type": "string"
            },
            "attested_at": {
              "type": "string",
              "format": "date-time"
            },
            "site_stale_count": {
              "type": "integer",
              "minimum": 0,
              "description": "Site-wide stale capability count at bind time. Fetch live_site_status.href for the current count."
            }
          }
        },
        "live_site_status": {
          "type": "object",
          "description": "Pointer to the live site-wide production attestation report. Do not treat bound_snapshot as live.",
          "properties": {
            "href": {
              "type": "string"
            }
          }
        },
        "bound_snapshot_status": {
          "type": "string",
          "description": "Alias of bound_snapshot.status."
        },
        "bound_snapshot_site_stale_count": {
          "type": "integer",
          "minimum": 0,
          "description": "Alias of bound_snapshot.site_stale_count. Bound snapshot, not live."
        },
        "site_stale_capability_count": {
          "type": "integer",
          "minimum": 0,
          "description": "Deprecated alias of bound_snapshot.site_stale_count. Bound snapshot at Manifest serialization, not a live site count."
        },
        "live_report_status": {
          "type": "string",
          "description": "Site-wide report status observed at Manifest bind time (alias of bound snapshot live_report_status)."
        },
        "bound_attested_at": {
          "type": "string",
          "format": "date-time"
        },
        "live_updated_at": {
          "type": "string",
          "format": "date-time"
        },
        "stale_reason": {
          "type": "string"
        },
        "statement_sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "signature": {
          "type": "string"
        },
        "key_id": {
          "type": "string"
        }
      },
      "if": {
        "anyOf": [
          { "required": ["statement_sha256"] },
          { "required": ["signature"] },
          { "required": ["key_id"] }
        ]
      },
      "then": {
        "required": ["statement_sha256", "signature", "key_id"]
      }
    },
    "domain_review": {
      "type": "object",
      "description": "CVP supplemental / independent domain expert review (CVP-EXP-01). Distinct from CalculatorX internal engineering review.",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "PASS",
            "FAIL",
            "ABSENT"
          ]
        },
        "scope": {
          "type": "string"
        },
        "reviewer_role": {
          "type": "string"
        },
        "spec_version": {
          "type": "string"
        },
        "independence": {
          "type": "string",
          "enum": ["internal", "external_third_party"],
          "description": "internal = CalculatorX domain review, not a third-party certification."
        },
        "external_third_party": {
          "type": "boolean"
        }
      }
    },
    "internal_review": {
      "type": "object",
      "description": "CalculatorX internal engineering review (Review-policy L2). Not CVP-EXP-01 and not a third-party certification.",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "PASS",
            "FAIL",
            "ABSENT"
          ]
        },
        "scope": {
          "type": "string"
        },
        "reviewer_role": {
          "type": "string"
        },
        "reviewed_by": {
          "type": "string"
        },
        "spec_version": {
          "type": "string"
        },
        "independence": {
          "type": "string",
          "enum": ["internal", "external_third_party"]
        },
        "external_third_party": {
          "type": "boolean"
        }
      }
    },
    "timestamps": {
      "type": "object",
      "required": [
        "verified_at"
      ],
      "properties": {
        "verified_at": {
          "type": "string",
          "format": "date-time"
        },
        "generated_at": {
          "type": "string",
          "format": "date-time"
        },
        "rendered_at": {
          "type": "string",
          "format": "date-time"
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "legacy_evidence": { "type": "string" },
        "evidence_page": { "type": "string" },
        "calculator": { "type": "string" },
        "schema": { "type": "string" },
        "protocol": { "type": "string" },
        "reproduce": { "type": "string" },
        "o3_table": { "type": "string" },
        "o3_generator": { "type": "string" },
        "o3_checker": { "type": "string" },
        "o2_oracle": { "type": "string" },
        "o2_checker": { "type": "string" },
        "manifest": { "type": "string" },
        "manifest_immutable": { "type": "string" },
        "manifest_core": { "type": "string" }
      }
    }
  }
}
