{
  "contract_key": "org_canvas_change_draft_contract",
  "version": "v1",
  "status": "metadata_design_only",
  "business_purpose": "Canvas interactions produce a structured draft contract first; drag/drop is the interaction target, not an immediate write path.",
  "canvas_actions": [
    "drag_create_department",
    "drag_move_department",
    "drag_employee_assignment",
    "drag_position_assignment",
    "generate_before_after_preview"
  ],
  "required_fields": [
    "canvas_session_id",
    "change_set_id",
    "actor_role",
    "operation_type",
    "source_node",
    "target_node",
    "before_graph",
    "after_graph",
    "detected_impacts",
    "required_gate",
    "status"
  ],
  "guardrails": [
    "no DB writes in D2",
    "no org apply",
    "no position apply",
    "no automatic permission rule activation",
    "before/after must be generated before review",
    "rollback plan required before any later apply"
  ],
  "review_package": [
    "change_set_summary",
    "before_after_graph",
    "affected_departments",
    "affected_positions",
    "affected_employee_count",
    "permission_impact",
    "feishu_sandbox_preview",
    "rollback_plan"
  ],
  "writes_db": false,
  "calls_feishu": false,
  "business_effective": false,
  "next_required_gate": "ORG_CANVAS_CHANGE_DRAFT_SCHEMA_REVIEW_GATE"
}