{
  "$defs": {
    "AssumptionStatus": {
      "enum": [
        "untested",
        "supported",
        "rejected"
      ],
      "title": "AssumptionStatus",
      "type": "string"
    },
    "Classification": {
      "enum": [
        "public",
        "internal",
        "confidential",
        "restricted"
      ],
      "title": "Classification",
      "type": "string"
    },
    "ConflictPosition": {
      "additionalProperties": false,
      "properties": {
        "authority": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Authority",
          "type": "string"
        },
        "evidence_refs": {
          "items": {
            "maxLength": 128,
            "minLength": 1,
            "not": {
              "pattern": "[\t-\r\u001c-    -     　]$"
            },
            "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
            "type": "string"
          },
          "title": "Evidence Refs",
          "type": "array"
        },
        "owner": {
          "maxLength": 256,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Owner",
          "type": "string"
        },
        "position": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Position",
          "type": "string"
        }
      },
      "required": [
        "authority",
        "owner",
        "position",
        "evidence_refs"
      ],
      "title": "ConflictPosition",
      "type": "object"
    },
    "DecisionConflict": {
      "additionalProperties": false,
      "allOf": [
        {
          "else": {
            "properties": {
              "final_rationale": {
                "type": "null"
              },
              "resolved_at": {
                "type": "null"
              }
            }
          },
          "if": {
            "properties": {
              "status": {
                "const": "resolved"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "final_rationale": {
                "type": "string"
              },
              "resolved_at": {
                "type": "string"
              }
            },
            "required": [
              "final_rationale",
              "resolved_at"
            ]
          }
        }
      ],
      "properties": {
        "decision_id": {
          "maxLength": 128,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
          "title": "Decision Id",
          "type": "string"
        },
        "due_trigger": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Due Trigger",
          "type": "string"
        },
        "escalation_owner": {
          "maxLength": 256,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Escalation Owner",
          "type": "string"
        },
        "escalation_path": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Escalation Path",
          "type": "string"
        },
        "final_rationale": {
          "anyOf": [
            {
              "maxLength": 4096,
              "minLength": 1,
              "not": {
                "pattern": "[\t-\r\u001c-    -     　]$"
              },
              "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Final Rationale"
        },
        "governing_authority": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Governing Authority",
          "type": "string"
        },
        "id": {
          "maxLength": 128,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
          "title": "Id",
          "type": "string"
        },
        "positions": {
          "items": {
            "$ref": "#/$defs/ConflictPosition"
          },
          "minItems": 2,
          "title": "Positions",
          "type": "array"
        },
        "resolution_condition": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Resolution Condition",
          "type": "string"
        },
        "resolved_at": {
          "anyOf": [
            {
              "format": "date-time",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?(?:Z|[+-]\\d{2}:\\d{2})$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Resolved At"
        },
        "status": {
          "enum": [
            "open",
            "resolved"
          ],
          "title": "Status",
          "type": "string"
        }
      },
      "required": [
        "id",
        "decision_id",
        "status",
        "positions",
        "governing_authority",
        "escalation_owner",
        "escalation_path",
        "resolution_condition",
        "due_trigger"
      ],
      "title": "DecisionConflict",
      "type": "object"
    },
    "DecisionEvidence": {
      "additionalProperties": false,
      "properties": {
        "classification": {
          "$ref": "#/$defs/Classification",
          "default": "internal"
        },
        "collected_at": {
          "anyOf": [
            {
              "format": "date-time",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?(?:Z|[+-]\\d{2}:\\d{2})$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Collected At"
        },
        "digest": {
          "anyOf": [
            {
              "maxLength": 64,
              "minLength": 64,
              "not": {
                "pattern": "[\t-\r\u001c-    -     　]$"
              },
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Digest"
        },
        "id": {
          "maxLength": 128,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
          "title": "Id",
          "type": "string"
        },
        "level": {
          "$ref": "#/$defs/EvidenceLevel"
        },
        "limitations": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Limitations",
          "type": "string"
        },
        "scope": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Scope",
          "type": "string"
        },
        "source": {
          "maxLength": 1024,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Source",
          "type": "string"
        },
        "statement": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Statement",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/EvidenceStatus",
          "default": "current"
        }
      },
      "required": [
        "id",
        "level",
        "statement",
        "source",
        "scope",
        "limitations"
      ],
      "title": "DecisionEvidence",
      "type": "object"
    },
    "DecisionLifecycle": {
      "enum": [
        "open",
        "decided",
        "review_due",
        "superseded"
      ],
      "title": "DecisionLifecycle",
      "type": "string"
    },
    "DecisionSurface": {
      "enum": [
        "opportunity",
        "workflow",
        "authority",
        "boundary",
        "evidence",
        "structure",
        "launch",
        "economics"
      ],
      "title": "DecisionSurface",
      "type": "string"
    },
    "EvidenceLevel": {
      "enum": [
        "E0",
        "E1",
        "E2",
        "E3",
        "E4"
      ],
      "title": "EvidenceLevel",
      "type": "string"
    },
    "EvidenceStatus": {
      "enum": [
        "current",
        "review_due",
        "invalid"
      ],
      "title": "EvidenceStatus",
      "type": "string"
    },
    "GovernanceState": {
      "enum": [
        "clear",
        "conflicted",
        "blocked"
      ],
      "title": "GovernanceState",
      "type": "string"
    },
    "LifecycleStage": {
      "enum": [
        "strategy",
        "discovery",
        "productization",
        "launch",
        "scale"
      ],
      "title": "LifecycleStage",
      "type": "string"
    },
    "ProductAssumption": {
      "additionalProperties": false,
      "allOf": [
        {
          "if": {
            "properties": {
              "status": {
                "enum": [
                  "supported",
                  "rejected"
                ]
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "evidence_refs": {
                "minItems": 1
              }
            },
            "required": [
              "evidence_refs"
            ]
          }
        }
      ],
      "properties": {
        "evidence_refs": {
          "default": [],
          "items": {
            "maxLength": 128,
            "minLength": 1,
            "not": {
              "pattern": "[\t-\r\u001c-    -     　]$"
            },
            "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
            "type": "string"
          },
          "title": "Evidence Refs",
          "type": "array"
        },
        "id": {
          "maxLength": 128,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
          "title": "Id",
          "type": "string"
        },
        "owner": {
          "maxLength": 256,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Owner",
          "type": "string"
        },
        "review_trigger": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Review Trigger",
          "type": "string"
        },
        "statement": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Statement",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/AssumptionStatus",
          "default": "untested"
        },
        "test": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Test",
          "type": "string"
        }
      },
      "required": [
        "id",
        "statement",
        "owner",
        "test",
        "review_trigger"
      ],
      "title": "ProductAssumption",
      "type": "object"
    },
    "ProductDecision": {
      "additionalProperties": false,
      "allOf": [
        {
          "else": {
            "properties": {
              "decided_at": {
                "type": "null"
              },
              "decision": {
                "type": "null"
              },
              "rationale": {
                "type": "null"
              }
            }
          },
          "if": {
            "properties": {
              "status": {
                "enum": [
                  "decided",
                  "review_due",
                  "superseded"
                ]
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "anyOf": [
              {
                "properties": {
                  "evidence_refs": {
                    "minItems": 1
                  }
                },
                "required": [
                  "evidence_refs"
                ]
              },
              {
                "properties": {
                  "assumption_refs": {
                    "minItems": 1
                  }
                },
                "required": [
                  "assumption_refs"
                ]
              },
              {
                "properties": {
                  "depends_on": {
                    "minItems": 1
                  }
                },
                "required": [
                  "depends_on"
                ]
              }
            ],
            "properties": {
              "decided_at": {
                "type": "string"
              },
              "decision": {
                "type": "string"
              },
              "rationale": {
                "type": "string"
              }
            },
            "required": [
              "decision",
              "rationale",
              "decided_at"
            ]
          }
        }
      ],
      "properties": {
        "assumption_refs": {
          "default": [],
          "items": {
            "maxLength": 128,
            "minLength": 1,
            "not": {
              "pattern": "[\t-\r\u001c-    -     　]$"
            },
            "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
            "type": "string"
          },
          "title": "Assumption Refs",
          "type": "array"
        },
        "coupled_with": {
          "default": [],
          "items": {
            "maxLength": 128,
            "minLength": 1,
            "not": {
              "pattern": "[\t-\r\u001c-    -     　]$"
            },
            "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
            "type": "string"
          },
          "title": "Coupled With",
          "type": "array"
        },
        "decided_at": {
          "anyOf": [
            {
              "format": "date-time",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?(?:Z|[+-]\\d{2}:\\d{2})$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Decided At"
        },
        "decision": {
          "anyOf": [
            {
              "maxLength": 4096,
              "minLength": 1,
              "not": {
                "pattern": "[\t-\r\u001c-    -     　]$"
              },
              "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Decision"
        },
        "depends_on": {
          "default": [],
          "items": {
            "maxLength": 128,
            "minLength": 1,
            "not": {
              "pattern": "[\t-\r\u001c-    -     　]$"
            },
            "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
            "type": "string"
          },
          "title": "Depends On",
          "type": "array"
        },
        "evidence_refs": {
          "default": [],
          "items": {
            "maxLength": 128,
            "minLength": 1,
            "not": {
              "pattern": "[\t-\r\u001c-    -     　]$"
            },
            "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
            "type": "string"
          },
          "title": "Evidence Refs",
          "type": "array"
        },
        "governance_state": {
          "$ref": "#/$defs/GovernanceState",
          "default": "clear"
        },
        "id": {
          "maxLength": 128,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
          "title": "Id",
          "type": "string"
        },
        "is_gate": {
          "default": false,
          "title": "Is Gate",
          "type": "boolean"
        },
        "owner": {
          "maxLength": 256,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Owner",
          "type": "string"
        },
        "question": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Question",
          "type": "string"
        },
        "rationale": {
          "anyOf": [
            {
              "maxLength": 4096,
              "minLength": 1,
              "not": {
                "pattern": "[\t-\r\u001c-    -     　]$"
              },
              "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rationale"
        },
        "reversal_or_containment": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Reversal Or Containment",
          "type": "string"
        },
        "reversibility": {
          "$ref": "#/$defs/Reversibility"
        },
        "review_triggers": {
          "items": {
            "maxLength": 4096,
            "minLength": 1,
            "not": {
              "pattern": "[\t-\r\u001c-    -     　]$"
            },
            "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
            "type": "string"
          },
          "minItems": 1,
          "title": "Review Triggers",
          "type": "array"
        },
        "stage": {
          "$ref": "#/$defs/LifecycleStage"
        },
        "status": {
          "$ref": "#/$defs/DecisionLifecycle",
          "default": "open"
        },
        "surface": {
          "$ref": "#/$defs/DecisionSurface"
        },
        "title": {
          "maxLength": 256,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Title",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "stage",
        "surface",
        "question",
        "owner",
        "reversibility",
        "reversal_or_containment",
        "review_triggers"
      ],
      "title": "ProductDecision",
      "type": "object"
    },
    "ProductIdentity": {
      "additionalProperties": false,
      "properties": {
        "accountable_product_leader": {
          "maxLength": 256,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Accountable Product Leader",
          "type": "string"
        },
        "classification": {
          "$ref": "#/$defs/Classification",
          "default": "internal"
        },
        "current_stage": {
          "$ref": "#/$defs/LifecycleStage"
        },
        "excluded_uses": {
          "items": {
            "maxLength": 4096,
            "minLength": 1,
            "not": {
              "pattern": "[\t-\r\u001c-    -     　]$"
            },
            "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
            "type": "string"
          },
          "minItems": 1,
          "title": "Excluded Uses",
          "type": "array"
        },
        "id": {
          "maxLength": 128,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
          "title": "Id",
          "type": "string"
        },
        "intended_use": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Intended Use",
          "type": "string"
        },
        "name": {
          "maxLength": 256,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Name",
          "type": "string"
        },
        "summary": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Summary",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "summary",
        "intended_use",
        "excluded_uses",
        "current_stage",
        "accountable_product_leader"
      ],
      "title": "ProductIdentity",
      "type": "object"
    },
    "ReleaseCaseReference": {
      "additionalProperties": false,
      "allOf": [
        {
          "if": {
            "properties": {
              "status": {
                "const": "current"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "expected_case_digest": {
                "type": "string"
              },
              "expected_configuration_digest": {
                "type": "string"
              },
              "expected_use_envelope_id": {
                "type": "string"
              }
            },
            "required": [
              "expected_case_digest",
              "expected_use_envelope_id",
              "expected_configuration_digest"
            ]
          }
        }
      ],
      "properties": {
        "case_id": {
          "maxLength": 128,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
          "title": "Case Id",
          "type": "string"
        },
        "decision_id": {
          "maxLength": 128,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
          "title": "Decision Id",
          "type": "string"
        },
        "expected_case_digest": {
          "anyOf": [
            {
              "maxLength": 64,
              "minLength": 64,
              "not": {
                "pattern": "[\t-\r\u001c-    -     　]$"
              },
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Expected Case Digest"
        },
        "expected_configuration_digest": {
          "anyOf": [
            {
              "maxLength": 64,
              "minLength": 64,
              "not": {
                "pattern": "[\t-\r\u001c-    -     　]$"
              },
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Expected Configuration Digest"
        },
        "expected_use_envelope_id": {
          "anyOf": [
            {
              "maxLength": 128,
              "minLength": 1,
              "not": {
                "pattern": "[\t-\r\u001c-    -     　]$"
              },
              "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Expected Use Envelope Id"
        },
        "path": {
          "default": ".launchpad/physical.yml",
          "maxLength": 1024,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Path",
          "type": "string"
        },
        "scope": {
          "maxLength": 4096,
          "minLength": 1,
          "not": {
            "pattern": "[\t-\r\u001c-    -     　]$"
          },
          "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
          "title": "Scope",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/ReleaseCaseStatus",
          "default": "planned"
        }
      },
      "required": [
        "case_id",
        "decision_id",
        "scope"
      ],
      "title": "ReleaseCaseReference",
      "type": "object"
    },
    "ReleaseCaseStatus": {
      "enum": [
        "planned",
        "current",
        "stale"
      ],
      "title": "ReleaseCaseStatus",
      "type": "string"
    },
    "Reversibility": {
      "enum": [
        "reversible",
        "costly",
        "one_way"
      ],
      "title": "Reversibility",
      "type": "string"
    }
  },
  "$id": "https://hyperion-consulting.io/methods/hc-opdg-001/0.1.0/graph.schema.json",
  "additionalProperties": false,
  "description": "One immutable revision of an operated-product decision system.",
  "properties": {
    "assumptions": {
      "default": [],
      "items": {
        "$ref": "#/$defs/ProductAssumption"
      },
      "title": "Assumptions",
      "type": "array"
    },
    "conflicts": {
      "default": [],
      "items": {
        "$ref": "#/$defs/DecisionConflict"
      },
      "title": "Conflicts",
      "type": "array"
    },
    "created_at": {
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?(?:Z|[+-]\\d{2}:\\d{2})$",
      "title": "Created At",
      "type": "string"
    },
    "decision_principles": {
      "default": [],
      "items": {
        "maxLength": 4096,
        "minLength": 1,
        "not": {
          "pattern": "[\t-\r\u001c-    -     　]$"
        },
        "pattern": "^[^\t-\r\u001c-    -     　](?:[\\s\\S]*[^\t-\r\u001c-    -     　])?$",
        "type": "string"
      },
      "title": "Decision Principles",
      "type": "array"
    },
    "decisions": {
      "items": {
        "$ref": "#/$defs/ProductDecision"
      },
      "title": "Decisions",
      "type": "array"
    },
    "evidence": {
      "default": [],
      "items": {
        "$ref": "#/$defs/DecisionEvidence"
      },
      "title": "Evidence",
      "type": "array"
    },
    "method_id": {
      "const": "HC-OPDG-001",
      "default": "HC-OPDG-001",
      "title": "Method Id",
      "type": "string"
    },
    "method_version": {
      "const": "0.1.0",
      "default": "0.1.0",
      "title": "Method Version",
      "type": "string"
    },
    "product": {
      "$ref": "#/$defs/ProductIdentity"
    },
    "release_cases": {
      "default": [],
      "items": {
        "$ref": "#/$defs/ReleaseCaseReference"
      },
      "title": "Release Cases",
      "type": "array"
    },
    "revision": {
      "default": 1,
      "maximum": 9007199254740991,
      "minimum": 1,
      "title": "Revision",
      "type": "integer"
    },
    "schema_version": {
      "const": "launchpad.physical-ai-product-graph/v1",
      "default": "launchpad.physical-ai-product-graph/v1",
      "title": "Schema Version",
      "type": "string"
    },
    "updated_at": {
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?(?:Z|[+-]\\d{2}:\\d{2})$",
      "title": "Updated At",
      "type": "string"
    }
  },
  "required": [
    "product",
    "decisions",
    "created_at",
    "updated_at"
  ],
  "title": "ProductDecisionGraph",
  "type": "object"
}
