Files
Liti-agent-Development/Default_Agent_청구취지기재방법/질문_답변_사취연구_가액배상계산.md
T

71 KiB

질문

위에서 제시한 아래 내용을 참조하라.

사해행위취소의 가액배상형에서는 다음 항목을 내부적으로 반드시 채우게 해야 합니다.

  • property_value_at_close_of_arguments
  • mortgages_existing_at_fraudulent_act[]
  • mortgages_still_existing_at_close[]
  • lease_deposit_deductibility
  • non_deductible_attachment_claims[]
  • common_collateral_value
  • plaintiff_preserved_claim_principal
  • plaintiff_preserved_claim_interest_until_close
  • plaintiff_preserved_claim_total
  • beneficiary_gain
  • plaintiff_recovery_cap

그리고 이 항목들 중 하나라도 비어 있으면 relief_summary를 보수적으로 축소하거나 VALIDATION WARNING을 남기고 숫자 확정을 유보하게 해야 합니다.

사해행위취소 청구 시 가액배상용 계산표 JSON 템플릿을 "특정 사건에 의존적이지 않은" 가장 일반적이면서 thorough한 형태로 제시하라.

답변

아래 템플릿은 부동산 사해행위취소 사건에서 원상회복 방법이 가액배상으로 귀결되는 경우를 상정한, 가장 일반적이고 확장 가능한 계산표 JSON입니다. 구조는 다음 법리를 직접 반영합니다. 가액배상은 저당권이 설정된 상태에서 사해행위가 있고 그 뒤 저당권이 소멸한 경우 문제되며, 공제 계산은 사실심 변론종결시의 부동산 가액을 기준으로 하되, 공제할 피담보채권액은 원칙적으로 사해행위 당시의 피담보채권액을 기준으로 하고, 남아 있는 다른 저당권도 함께 공제해야 합니다. 또한 임차보증금은 예외적 사정이 없으면 공제되지 않을 수 있고, 가압류채권은 공제 대상이 아니며, 상한은 공동담보가액 / 피보전채권액 / 수익자 이익 중 최소값입니다. 피보전채권액에는 사해행위 후 사실심 변론종결시까지의 이자·지연손해금도 포함됩니다. 복수 채권자가 있는 경우에도 원고별 피보전채권과 회복범위를 별도로 특정해야 합니다.

{
  "template_name": "actio_pauliana_value_compensation_worksheet",
  "schema_version": "1.0",
  "jurisdiction": "KR",
  "language": "ko-KR",
  "currency": "KRW",

  "case_metadata": {
    "matter_id": null,
    "claim_group_id": null,
    "claim_id": null,
    "working_title": null,
    "created_at": null,
    "updated_at": null,
    "prepared_by_agent": null,
    "review_status": "draft",
    "overall_confidence": "unknown"
  },

  "case_context": {
    "procedural_stage": {
      "current_stage": null,
      "factual_close_of_arguments_date": null,
      "judgment_expected": null,
      "finality_date": null
    },
    "cause_of_action_characterization": {
      "primary_label": "사해행위취소 및 가액배상",
      "secondary_labels": [],
      "remedy_mode": "value_compensation",
      "why_value_compensation": {
        "status": "unknown",
        "reason_text": null,
        "mortgage_existed_before_or_at_act": null,
        "ownership_transfer_occurred": null,
        "mortgage_extinguished_after_act": null,
        "restoration_in_kind_legally_or_factually_impossible": null,
        "transferee_bad_faith_status": null,
        "subacquirer_bad_faith_status": null,
        "evidence_refs": []
      }
    },
    "limitation_and_exclusion": {
      "civil_code_406_awareness_date": null,
      "civil_code_406_awareness_basis": null,
      "civil_code_406_one_year_deadline": null,
      "civil_code_406_five_year_deadline": null,
      "is_within_exclusion_period": null,
      "evidence_refs": []
    }
  },

  "parties": {
    "debtor": {
      "party_id": null,
      "name": null,
      "type": null,
      "insolvency_status_at_act": "unknown",
      "sole_property_disposition": null,
      "evidence_refs": []
    },
    "beneficiary": {
      "party_id": null,
      "name": null,
      "type": null,
      "role": "수익자",
      "bad_faith_status": "unknown",
      "benefit_acquired_description": null,
      "evidence_refs": []
    },
    "subacquirers": [],
    "plaintiffs": []
  },

  "fraudulent_act": {
    "act_type": null,
    "contract_date": null,
    "registration_date": null,
    "discovery_date_by_plaintiff": null,
    "act_summary": null,
    "price_or_nominal_consideration": {
      "krw": null,
      "status": "unknown",
      "basis": null,
      "evidence_refs": []
    },
    "consideration_breakdown": {
      "cash_paid": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "debt_assumption": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "offset_or_setoff": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "other_non_cash_consideration": []
    },
    "sham_or_real_transaction_issue": {
      "issue_exists": null,
      "status": "unknown",
      "basis": null,
      "evidence_refs": []
    },
    "evidence_refs": []
  },

  "target_asset": {
    "asset_id": null,
    "asset_type": "부동산",
    "schedule_label": null,
    "description": null,
    "address": null,
    "registry_office": null,
    "registry_receipt_no": null,
    "title_transfer_registration_exists": null,
    "transfer_chain": [],
    "asset_status_at_close": {
      "still_owned_by_beneficiary_or_subacquirer": null,
      "further_disposed": null,
      "current_holder_name": null,
      "evidence_refs": []
    }
  },

  "valuation_snapshots": {
    "property_value_at_fraudulent_act": {
      "krw": null,
      "status": "unknown",
      "valuation_date": null,
      "valuation_method": null,
      "basis": null,
      "evidence_refs": []
    },
    "property_value_at_close_of_arguments": {
      "krw": null,
      "status": "unknown",
      "valuation_date": null,
      "valuation_method": null,
      "basis": null,
      "evidence_refs": []
    },
    "property_value_at_other_dates": []
  },

  "encumbrances": {
    "mortgages_existing_at_fraudulent_act": [],
    "mortgages_still_existing_at_close": [],
    "other_real_rights_or_burdens": [],
    "tenant_rights": [],
    "lease_deposit_deductibility": {
      "exists": null,
      "deductible": "unknown",
      "total_lease_deposit": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "deductible_amount": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "non_deductible_amount": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "priority_analysis": {
        "tenant_has_possession": null,
        "tenant_has_resident_registration": null,
        "fixed_date_exists": null,
        "small_tenant_issue": null,
        "senior_mortgage_preexists": null,
        "will_leasehold_be_extinguished_in_auction": null,
        "reason_text": null,
        "evidence_refs": []
      }
    },
    "non_deductible_attachment_claims": []
  },

  "common_collateral_value": {
    "gross_property_value_at_close": {
      "krw": null,
      "status": "unknown",
      "basis": null,
      "evidence_refs": []
    },
    "deduction_components": {
      "mortgages_existing_at_act_total": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "mortgages_still_existing_at_close_total": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "deductible_lease_deposit_total": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "other_deductible_burdens_total": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "non_deductible_attachment_total": {
        "krw": null,
        "status": "unknown",
        "basis": "공제 제외용 참조값",
        "evidence_refs": []
      }
    },
    "calculation_formula_text": null,
    "common_collateral_value": {
      "krw": null,
      "status": "unknown",
      "basis": null,
      "evidence_refs": []
    }
  },

  "beneficiary_gain": {
    "benefit_type": null,
    "benefit_basis": null,
    "raw_gain_amount": {
      "krw": null,
      "status": "unknown",
      "basis": null,
      "evidence_refs": []
    },
    "adjustments": [],
    "beneficiary_gain": {
      "krw": null,
      "status": "unknown",
      "basis": null,
      "evidence_refs": []
    }
  },

  "plaintiff_preserved_claims": [
    {
      "plaintiff_id": null,
      "name": null,
      "claim_type": null,
      "underlying_claim": {
        "underlying_obligation_type": null,
        "contract_or_occurrence_date": null,
        "maturity_date": null,
        "principal_original": {
          "krw": null,
          "status": "unknown",
          "basis": null,
          "evidence_refs": []
        },
        "already_recovered_before_act": {
          "krw": null,
          "status": "unknown",
          "basis": null,
          "evidence_refs": []
        },
        "already_recovered_after_act_before_close": {
          "krw": null,
          "status": "unknown",
          "basis": null,
          "evidence_refs": []
        },
        "remaining_exposure_at_close": {
          "krw": null,
          "status": "unknown",
          "basis": null,
          "evidence_refs": []
        }
      },
      "security_analysis": {
        "is_fully_secured_at_act": null,
        "secured_portion_at_act": {
          "krw": null,
          "status": "unknown",
          "basis": null,
          "evidence_refs": []
        },
        "unsecured_portion_at_act": {
          "krw": null,
          "status": "unknown",
          "basis": null,
          "evidence_refs": []
        },
        "why_unsecured_portion_exists": null,
        "evidence_refs": []
      },
      "interest_rules": {
        "ordinary_interest_rate_text": null,
        "default_interest_rate_text": null,
        "default_interest_start_date": null,
        "interest_calculation_method": null,
        "interest_compounding_issue": null,
        "evidence_refs": []
      },
      "plaintiff_preserved_claim_principal": {
        "krw": null,
        "status": "unknown",
        "basis": "사해행위 당시 담보 범위를 초과하는 실질적 무담보 원금 부분",
        "evidence_refs": []
      },
      "plaintiff_preserved_claim_interest_until_close": {
        "krw": null,
        "status": "unknown",
        "calculation_start_date": null,
        "calculation_end_date": null,
        "rate_text": null,
        "basis": "사해행위 후 사실심 변론종결시까지 포함되는 이자·지연손해금",
        "evidence_refs": []
      },
      "plaintiff_preserved_claim_total": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "plaintiff_recovery_cap": {
        "cap_rule": "min(common_collateral_value, plaintiff_preserved_claim_total, beneficiary_gain)",
        "amount": {
          "krw": null,
          "status": "unknown",
          "basis": null,
          "evidence_refs": []
        }
      },
      "pre_close_interest_for_relief_text": {
        "should_render_in_relief": null,
        "rendered_principal_component": {
          "krw": null,
          "status": "unknown",
          "basis": null,
          "evidence_refs": []
        },
        "rendered_interest_start_date": null,
        "rendered_interest_end_marker": "이 사건 변론종결일까지",
        "rendered_rate_text": null,
        "rendering_reason": null
      },
      "post_finality_interest_for_relief_text": {
        "should_render_in_relief": true,
        "interest_start_marker": "이 판결 확정일 다음날부터",
        "interest_end_marker": "다 갚는 날까지",
        "rate_text": null,
        "legal_basis_text": null
      },
      "evidence_refs": []
    }
  ],

  "overall_cap_and_recovery_structure": {
    "global_returnable_value": {
      "krw": null,
      "status": "unknown",
      "basis": "공동담보가액과 수익자 이익의 범위를 전제로 한 전체 반환 가능 가액",
      "evidence_refs": []
    },
    "multi_plaintiff_structure_note": null,
    "is_pro_rata_allocation_used": false,
    "why_not_pro_rata_or_why_special_allocation_used": null
  },

  "relief_drafting_inputs": {
    "cancelation_scope": {
      "scope_type": null,
      "scope_amount": {
        "krw": null,
        "status": "unknown",
        "basis": null,
        "evidence_refs": []
      },
      "scope_text_for_relief": null
    },
    "drafting_blocks": [
      {
        "plaintiff_id": null,
        "plaintiff_name": null,
        "relief_block_type": "value_compensation",
        "principal_text": null,
        "pre_close_interest_text": null,
        "post_finality_interest_text": null,
        "combined_relief_text": null
      }
    ],
    "full_relief_summary_candidate": null
  },

  "evidence_map": {
    "core_evidence_refs": [],
    "field_level_evidence_index": [
      {
        "field_path": null,
        "evidence_refs": [],
        "support_strength": "unknown",
        "note": null
      }
    ]
  },

  "assumptions_and_unknowns": {
    "assumptions_used": [],
    "contested_points": [],
    "unknown_but_material_fields": [],
    "fields_blocking_numeric_finalization": []
  },

  "validation": {
    "required_field_presence": {
      "property_value_at_close_of_arguments": false,
      "mortgages_existing_at_fraudulent_act": false,
      "mortgages_still_existing_at_close": false,
      "lease_deposit_deductibility": false,
      "non_deductible_attachment_claims": false,
      "common_collateral_value": false,
      "plaintiff_preserved_claim_principal": false,
      "plaintiff_preserved_claim_interest_until_close": false,
      "plaintiff_preserved_claim_total": false,
      "beneficiary_gain": false,
      "plaintiff_recovery_cap": false
    },
    "cross_checks": {
      "value_at_close_present": false,
      "deduction_basis_consistent_with_act_time_rule": false,
      "still_existing_mortgages_also_deducted": false,
      "lease_deductibility_reasoned": false,
      "attachment_claims_marked_non_deductible": false,
      "each_plaintiff_separately_specified": false,
      "cap_rule_applied_per_plaintiff": false,
      "relief_text_matches_computed_numbers": false
    },
    "finalization_status": "not_finalized",
    "validation_warnings": []
  },

  "computation_audit_trail": [
    {
      "step_no": 1,
      "step_name": "collect_core_facts",
      "input_fields": [],
      "output_fields": [],
      "formula_or_rule": null,
      "status": "pending"
    },
    {
      "step_no": 2,
      "step_name": "determine_value_compensation_mode",
      "input_fields": [],
      "output_fields": [],
      "formula_or_rule": null,
      "status": "pending"
    },
    {
      "step_no": 3,
      "step_name": "compute_common_collateral_value",
      "input_fields": [],
      "output_fields": [],
      "formula_or_rule": null,
      "status": "pending"
    },
    {
      "step_no": 4,
      "step_name": "compute_each_plaintiff_preserved_claim",
      "input_fields": [],
      "output_fields": [],
      "formula_or_rule": null,
      "status": "pending"
    },
    {
      "step_no": 5,
      "step_name": "compute_beneficiary_gain",
      "input_fields": [],
      "output_fields": [],
      "formula_or_rule": null,
      "status": "pending"
    },
    {
      "step_no": 6,
      "step_name": "apply_cap_rule_and_prepare_relief_inputs",
      "input_fields": [],
      "output_fields": [],
      "formula_or_rule": "min(common_collateral_value, plaintiff_preserved_claim_total, beneficiary_gain)",
      "status": "pending"
    }
  ]
}

이 템플릿의 핵심 설계 포인트는 네 가지입니다.

첫째, 입력 사실과 계산 결과를 분리했습니다. 사해행위일 기준 담보권, 변론종결시 기준 담보권, 임차권, 가압류, 시가, 각 원고의 원채권 구조를 입력층으로 두고, common_collateral_value, beneficiary_gain, plaintiff_preserved_claim_total, plaintiff_recovery_cap를 계산층으로 분리해야 추론 오류를 줄일 수 있습니다. 저당권 말소 후 가액배상 구조, 공제 항목, 기준시점, 상한 규칙이 모두 서로 다른 시점을 쓰기 때문입니다.

둘째, 복수 원고를 반드시 원고별로 독립 객체화했습니다. 사해행위취소의 범위는 원고별 피보전채권액에 따라 특정되어야 하고, 공동원고라고 해서 하나의 합계액만으로 처리하면 안 됩니다. 그래서 plaintiff_preserved_claims[] 아래에 원고별 원금, 변론종결시까지의 이자, 총 피보전채권액, 회복상한, 주문 문구 입력값을 각각 두었습니다.

셋째, 담보부족분 분석을 별도 층위로 분리했습니다. 담보부족 상태에서는 단순한 “현재 미회수액” 전체가 아니라, 사해행위 당시 담보 범위를 초과하는 실질적 무담보 부분과 그에 대한 변론종결시까지의 지연이자를 기준으로 피보전채권 범위를 정밀 산정해야 합니다. 그래서 security_analysis, plaintiff_preserved_claim_principal, plaintiff_preserved_claim_interest_until_close를 따로 둔 것입니다.

넷째, 숫자 미확정 상태를 JSON 차원에서 표현하도록 만들었습니다. 각 금액 객체에 status, basis, evidence_refs를 두고, 최종적으로 validation.required_field_presence, cross_checks, finalization_status, validation_warnings를 두었습니다. 이렇게 해야 어떤 핵심 필드가 비어 있을 때 최종 relief_summary 숫자 확정을 중지시키는 자동화가 가능합니다.

실무적으로는 이 템플릿을 그대로 쓰기보다, 다음 두 변형 중 하나를 두는 것이 더 좋습니다.

  • actio_pauliana_value_compensation_input.json
  • actio_pauliana_value_compensation_result.json

전자는 증거에서 추출한 원시사실 저장용, 후자는 계산 결과 및 청구취지 초안용입니다. 지금 드린 템플릿은 둘을 합친 “워크시트” 형태입니다. LLM 파이프라인에서는 이 합본이 가장 안정적입니다.

원하시면 다음 단계로 이어서 (1) 이 템플릿의 JSON Schema 초안 또는 (2) Legal_Agent_V4의 Task A에 바로 삽입할 프롬프트 블록을 작성해 드리겠습니다.


질문

이 템플릿의 JSON Schema 초안을 작성하라.

답변

이제는 법리 설명보다 구현 명세의 문제입니다. 스키마는 구조적 유효성 검증까지는 담당할 수 있지만, min(common_collateral_value, plaintiff_preserved_claim_total, beneficiary_gain) 같은 산술적·법리적 일치성은 별도의 semantic validator가 맡아야 합니다.


아래는 Draft 2020-12 기준의 JSON Schema 초안입니다. 이 스키마는 당신이 요구한 가액배상 계산표의 핵심 구조를 일반형으로 강제합니다. 특히 변론종결시 시가, 사해행위 당시 및 변론종결시 담보권, 임차보증금 공제성, 가압류 비공제, 원고별 피보전채권 분리, 상한액 계산 입력값을 독립 필드로 두었습니다. 이는 업로드된 법리 정리 문서가 요구하는 구조와 정합적입니다.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.org/schemas/actio-pauliana-value-compensation-worksheet.schema.json",
  "title": "사해행위취소 가액배상 계산표 스키마",
  "description": "부동산 사해행위취소 사건에서 원상회복 방법이 가액배상으로 귀결되는 경우를 위한 일반형 계산표 JSON Schema 초안",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "template_name",
    "schema_version",
    "jurisdiction",
    "language",
    "currency",
    "case_metadata",
    "case_context",
    "parties",
    "fraudulent_act",
    "target_asset",
    "valuation_snapshots",
    "encumbrances",
    "common_collateral_value",
    "beneficiary_gain",
    "plaintiff_preserved_claims",
    "overall_cap_and_recovery_structure",
    "relief_drafting_inputs",
    "evidence_map",
    "assumptions_and_unknowns",
    "validation",
    "computation_audit_trail"
  ],
  "properties": {
    "template_name": {
      "type": "string",
      "const": "actio_pauliana_value_compensation_worksheet"
    },
    "schema_version": {
      "type": "string",
      "pattern": "^\\d+\\.\\d+$"
    },
    "jurisdiction": {
      "type": "string",
      "const": "KR"
    },
    "language": {
      "type": "string",
      "minLength": 2
    },
    "currency": {
      "type": "string",
      "const": "KRW"
    },
    "case_metadata": {
      "$ref": "#/$defs/caseMetadata"
    },
    "case_context": {
      "$ref": "#/$defs/caseContext"
    },
    "parties": {
      "$ref": "#/$defs/parties"
    },
    "fraudulent_act": {
      "$ref": "#/$defs/fraudulentAct"
    },
    "target_asset": {
      "$ref": "#/$defs/targetAsset"
    },
    "valuation_snapshots": {
      "$ref": "#/$defs/valuationSnapshots"
    },
    "encumbrances": {
      "$ref": "#/$defs/encumbrances"
    },
    "common_collateral_value": {
      "$ref": "#/$defs/commonCollateralValue"
    },
    "beneficiary_gain": {
      "$ref": "#/$defs/beneficiaryGain"
    },
    "plaintiff_preserved_claims": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/plaintiffPreservedClaim"
      }
    },
    "overall_cap_and_recovery_structure": {
      "$ref": "#/$defs/overallCapAndRecoveryStructure"
    },
    "relief_drafting_inputs": {
      "$ref": "#/$defs/reliefDraftingInputs"
    },
    "evidence_map": {
      "$ref": "#/$defs/evidenceMap"
    },
    "assumptions_and_unknowns": {
      "$ref": "#/$defs/assumptionsAndUnknowns"
    },
    "validation": {
      "$ref": "#/$defs/validation"
    },
    "computation_audit_trail": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/computationAuditStep"
      }
    }
  },
  "$defs": {
    "nullableString": {
      "type": ["string", "null"]
    },
    "nullableBoolean": {
      "type": ["boolean", "null"]
    },
    "nullableDate": {
      "type": ["string", "null"],
      "format": "date"
    },
    "statusEnum": {
      "type": "string",
      "enum": [
        "unknown",
        "estimated",
        "documented",
        "computed",
        "contested",
        "not_applicable"
      ]
    },
    "confidenceEnum": {
      "type": "string",
      "enum": [
        "unknown",
        "low",
        "medium",
        "high"
      ]
    },
    "supportStrengthEnum": {
      "type": "string",
      "enum": [
        "unknown",
        "weak",
        "moderate",
        "strong"
      ]
    },
    "finalizationStatusEnum": {
      "type": "string",
      "enum": [
        "not_finalized",
        "provisional",
        "finalized"
      ]
    },
    "evidenceRef": {
      "type": "string",
      "minLength": 1
    },
    "evidenceRefs": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/evidenceRef"
      },
      "uniqueItems": true
    },
    "amountField": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "krw",
        "status",
        "basis",
        "evidence_refs"
      ],
      "properties": {
        "krw": {
          "type": ["integer", "null"],
          "minimum": 0
        },
        "status": {
          "$ref": "#/$defs/statusEnum"
        },
        "basis": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "simpleNameValue": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "amount"
      ],
      "properties": {
        "name": {
          "$ref": "#/$defs/nullableString"
        },
        "amount": {
          "$ref": "#/$defs/amountField"
        }
      }
    },
    "caseMetadata": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "matter_id",
        "claim_group_id",
        "claim_id",
        "working_title",
        "created_at",
        "updated_at",
        "prepared_by_agent",
        "review_status",
        "overall_confidence"
      ],
      "properties": {
        "matter_id": {
          "$ref": "#/$defs/nullableString"
        },
        "claim_group_id": {
          "$ref": "#/$defs/nullableString"
        },
        "claim_id": {
          "$ref": "#/$defs/nullableString"
        },
        "working_title": {
          "$ref": "#/$defs/nullableString"
        },
        "created_at": {
          "$ref": "#/$defs/nullableString"
        },
        "updated_at": {
          "$ref": "#/$defs/nullableString"
        },
        "prepared_by_agent": {
          "$ref": "#/$defs/nullableString"
        },
        "review_status": {
          "type": "string",
          "enum": [
            "draft",
            "review_pending",
            "reviewed",
            "approved"
          ]
        },
        "overall_confidence": {
          "$ref": "#/$defs/confidenceEnum"
        }
      }
    },
    "proceduralStage": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "current_stage",
        "factual_close_of_arguments_date",
        "judgment_expected",
        "finality_date"
      ],
      "properties": {
        "current_stage": {
          "$ref": "#/$defs/nullableString"
        },
        "factual_close_of_arguments_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "judgment_expected": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "finality_date": {
          "$ref": "#/$defs/nullableDate"
        }
      }
    },
    "whyValueCompensation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "status",
        "reason_text",
        "mortgage_existed_before_or_at_act",
        "ownership_transfer_occurred",
        "mortgage_extinguished_after_act",
        "restoration_in_kind_legally_or_factually_impossible",
        "transferee_bad_faith_status",
        "subacquirer_bad_faith_status",
        "evidence_refs"
      ],
      "properties": {
        "status": {
          "$ref": "#/$defs/statusEnum"
        },
        "reason_text": {
          "$ref": "#/$defs/nullableString"
        },
        "mortgage_existed_before_or_at_act": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "ownership_transfer_occurred": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "mortgage_extinguished_after_act": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "restoration_in_kind_legally_or_factually_impossible": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "transferee_bad_faith_status": {
          "type": "string",
          "enum": [
            "unknown",
            "good_faith",
            "bad_faith",
            "contested"
          ]
        },
        "subacquirer_bad_faith_status": {
          "type": "string",
          "enum": [
            "unknown",
            "none",
            "good_faith",
            "bad_faith",
            "contested"
          ]
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "limitationAndExclusion": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "civil_code_406_awareness_date",
        "civil_code_406_awareness_basis",
        "civil_code_406_one_year_deadline",
        "civil_code_406_five_year_deadline",
        "is_within_exclusion_period",
        "evidence_refs"
      ],
      "properties": {
        "civil_code_406_awareness_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "civil_code_406_awareness_basis": {
          "$ref": "#/$defs/nullableString"
        },
        "civil_code_406_one_year_deadline": {
          "$ref": "#/$defs/nullableDate"
        },
        "civil_code_406_five_year_deadline": {
          "$ref": "#/$defs/nullableDate"
        },
        "is_within_exclusion_period": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "caseContext": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "procedural_stage",
        "cause_of_action_characterization",
        "limitation_and_exclusion"
      ],
      "properties": {
        "procedural_stage": {
          "$ref": "#/$defs/proceduralStage"
        },
        "cause_of_action_characterization": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "primary_label",
            "secondary_labels",
            "remedy_mode",
            "why_value_compensation"
          ],
          "properties": {
            "primary_label": {
              "type": "string",
              "const": "사해행위취소 및 가액배상"
            },
            "secondary_labels": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "remedy_mode": {
              "type": "string",
              "const": "value_compensation"
            },
            "why_value_compensation": {
              "$ref": "#/$defs/whyValueCompensation"
            }
          }
        },
        "limitation_and_exclusion": {
          "$ref": "#/$defs/limitationAndExclusion"
        }
      }
    },
    "partyObject": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "party_id",
        "name",
        "type",
        "evidence_refs"
      ],
      "properties": {
        "party_id": {
          "$ref": "#/$defs/nullableString"
        },
        "name": {
          "$ref": "#/$defs/nullableString"
        },
        "type": {
          "type": ["string", "null"],
          "enum": [
            "individual",
            "corporation",
            "organization",
            "estate",
            null
          ]
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "debtorObject": {
      "allOf": [
        {
          "$ref": "#/$defs/partyObject"
        },
        {
          "type": "object",
          "required": [
            "insolvency_status_at_act",
            "sole_property_disposition"
          ],
          "properties": {
            "insolvency_status_at_act": {
              "type": "string",
              "enum": [
                "unknown",
                "solvent",
                "insolvent",
                "contested"
              ]
            },
            "sole_property_disposition": {
              "$ref": "#/$defs/nullableBoolean"
            }
          }
        }
      ]
    },
    "beneficiaryObject": {
      "allOf": [
        {
          "$ref": "#/$defs/partyObject"
        },
        {
          "type": "object",
          "required": [
            "role",
            "bad_faith_status",
            "benefit_acquired_description"
          ],
          "properties": {
            "role": {
              "type": "string",
              "const": "수익자"
            },
            "bad_faith_status": {
              "type": "string",
              "enum": [
                "unknown",
                "good_faith",
                "bad_faith",
                "contested"
              ]
            },
            "benefit_acquired_description": {
              "$ref": "#/$defs/nullableString"
            }
          }
        }
      ]
    },
    "subacquirerObject": {
      "allOf": [
        {
          "$ref": "#/$defs/partyObject"
        },
        {
          "type": "object",
          "required": [
            "good_or_bad_faith_status"
          ],
          "properties": {
            "good_or_bad_faith_status": {
              "type": "string",
              "enum": [
                "unknown",
                "good_faith",
                "bad_faith",
                "contested"
              ]
            }
          }
        }
      ]
    },
    "plaintiffPartyObject": {
      "allOf": [
        {
          "$ref": "#/$defs/partyObject"
        },
        {
          "type": "object",
          "required": [
            "claim_role"
          ],
          "properties": {
            "claim_role": {
              "type": "string",
              "enum": [
                "creditor",
                "subrogated_creditor",
                "guarantor_regress_creditor",
                "other"
              ]
            }
          }
        }
      ]
    },
    "parties": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "debtor",
        "beneficiary",
        "subacquirers",
        "plaintiffs"
      ],
      "properties": {
        "debtor": {
          "$ref": "#/$defs/debtorObject"
        },
        "beneficiary": {
          "$ref": "#/$defs/beneficiaryObject"
        },
        "subacquirers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/subacquirerObject"
          }
        },
        "plaintiffs": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/plaintiffPartyObject"
          }
        }
      }
    },
    "considerationPart": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "krw",
        "status",
        "basis",
        "evidence_refs"
      ],
      "properties": {
        "krw": {
          "type": ["integer", "null"],
          "minimum": 0
        },
        "status": {
          "$ref": "#/$defs/statusEnum"
        },
        "basis": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "otherNonCashConsiderationItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "description",
        "amount",
        "evidence_refs"
      ],
      "properties": {
        "description": {
          "$ref": "#/$defs/nullableString"
        },
        "amount": {
          "$ref": "#/$defs/amountField"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "fraudulentAct": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "act_type",
        "contract_date",
        "registration_date",
        "discovery_date_by_plaintiff",
        "act_summary",
        "price_or_nominal_consideration",
        "consideration_breakdown",
        "sham_or_real_transaction_issue",
        "evidence_refs"
      ],
      "properties": {
        "act_type": {
          "$ref": "#/$defs/nullableString"
        },
        "contract_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "registration_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "discovery_date_by_plaintiff": {
          "$ref": "#/$defs/nullableDate"
        },
        "act_summary": {
          "$ref": "#/$defs/nullableString"
        },
        "price_or_nominal_consideration": {
          "$ref": "#/$defs/amountField"
        },
        "consideration_breakdown": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "cash_paid",
            "debt_assumption",
            "offset_or_setoff",
            "other_non_cash_consideration"
          ],
          "properties": {
            "cash_paid": {
              "$ref": "#/$defs/considerationPart"
            },
            "debt_assumption": {
              "$ref": "#/$defs/considerationPart"
            },
            "offset_or_setoff": {
              "$ref": "#/$defs/considerationPart"
            },
            "other_non_cash_consideration": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/otherNonCashConsiderationItem"
              }
            }
          }
        },
        "sham_or_real_transaction_issue": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "issue_exists",
            "status",
            "basis",
            "evidence_refs"
          ],
          "properties": {
            "issue_exists": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "status": {
              "$ref": "#/$defs/statusEnum"
            },
            "basis": {
              "$ref": "#/$defs/nullableString"
            },
            "evidence_refs": {
              "$ref": "#/$defs/evidenceRefs"
            }
          }
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "transferChainItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "from_party",
        "to_party",
        "date",
        "registration_date",
        "basis",
        "evidence_refs"
      ],
      "properties": {
        "from_party": {
          "$ref": "#/$defs/nullableString"
        },
        "to_party": {
          "$ref": "#/$defs/nullableString"
        },
        "date": {
          "$ref": "#/$defs/nullableDate"
        },
        "registration_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "basis": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "targetAsset": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "asset_id",
        "asset_type",
        "schedule_label",
        "description",
        "address",
        "registry_office",
        "registry_receipt_no",
        "title_transfer_registration_exists",
        "transfer_chain",
        "asset_status_at_close"
      ],
      "properties": {
        "asset_id": {
          "$ref": "#/$defs/nullableString"
        },
        "asset_type": {
          "type": "string",
          "const": "부동산"
        },
        "schedule_label": {
          "$ref": "#/$defs/nullableString"
        },
        "description": {
          "$ref": "#/$defs/nullableString"
        },
        "address": {
          "$ref": "#/$defs/nullableString"
        },
        "registry_office": {
          "$ref": "#/$defs/nullableString"
        },
        "registry_receipt_no": {
          "$ref": "#/$defs/nullableString"
        },
        "title_transfer_registration_exists": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "transfer_chain": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/transferChainItem"
          }
        },
        "asset_status_at_close": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "still_owned_by_beneficiary_or_subacquirer",
            "further_disposed",
            "current_holder_name",
            "evidence_refs"
          ],
          "properties": {
            "still_owned_by_beneficiary_or_subacquirer": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "further_disposed": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "current_holder_name": {
              "$ref": "#/$defs/nullableString"
            },
            "evidence_refs": {
              "$ref": "#/$defs/evidenceRefs"
            }
          }
        }
      }
    },
    "valuedAmountSnapshot": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "krw",
        "status",
        "valuation_date",
        "valuation_method",
        "basis",
        "evidence_refs"
      ],
      "properties": {
        "krw": {
          "type": ["integer", "null"],
          "minimum": 0
        },
        "status": {
          "$ref": "#/$defs/statusEnum"
        },
        "valuation_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "valuation_method": {
          "$ref": "#/$defs/nullableString"
        },
        "basis": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "otherValueSnapshotItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "label",
        "amount"
      ],
      "properties": {
        "label": {
          "$ref": "#/$defs/nullableString"
        },
        "amount": {
          "$ref": "#/$defs/valuedAmountSnapshot"
        }
      }
    },
    "valuationSnapshots": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "property_value_at_fraudulent_act",
        "property_value_at_close_of_arguments",
        "property_value_at_other_dates"
      ],
      "properties": {
        "property_value_at_fraudulent_act": {
          "$ref": "#/$defs/valuedAmountSnapshot"
        },
        "property_value_at_close_of_arguments": {
          "$ref": "#/$defs/valuedAmountSnapshot"
        },
        "property_value_at_other_dates": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/otherValueSnapshotItem"
          }
        }
      }
    },
    "encumbranceMortgageItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "encumbrance_id",
        "holder_name",
        "kind",
        "rank",
        "registration_date",
        "registered_max_amount",
        "actual_secured_debt_at_act",
        "actual_outstanding_at_close",
        "extinguished_after_act",
        "extinguishment_date",
        "extinguished_by_beneficiary",
        "deductible_in_value_compensation",
        "deductibility_reason",
        "evidence_refs"
      ],
      "properties": {
        "encumbrance_id": {
          "$ref": "#/$defs/nullableString"
        },
        "holder_name": {
          "$ref": "#/$defs/nullableString"
        },
        "kind": {
          "type": ["string", "null"],
          "enum": [
            "근저당권",
            "저당권",
            "질권",
            null
          ]
        },
        "rank": {
          "type": ["integer", "null"],
          "minimum": 1
        },
        "registration_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "registered_max_amount": {
          "$ref": "#/$defs/amountField"
        },
        "actual_secured_debt_at_act": {
          "$ref": "#/$defs/amountField"
        },
        "actual_outstanding_at_close": {
          "$ref": "#/$defs/amountField"
        },
        "extinguished_after_act": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "extinguishment_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "extinguished_by_beneficiary": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "deductible_in_value_compensation": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "deductibility_reason": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "otherBurdenItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "holder_name",
        "rank",
        "amount",
        "deductible_in_value_compensation",
        "deductibility_reason",
        "evidence_refs"
      ],
      "properties": {
        "kind": {
          "$ref": "#/$defs/nullableString"
        },
        "holder_name": {
          "$ref": "#/$defs/nullableString"
        },
        "rank": {
          "type": ["integer", "null"],
          "minimum": 1
        },
        "amount": {
          "$ref": "#/$defs/amountField"
        },
        "deductible_in_value_compensation": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "deductibility_reason": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "tenantRightItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "tenant_name",
        "deposit_amount",
        "resident_registration_date",
        "occupancy_status",
        "fixed_date_exists",
        "small_tenant_issue",
        "priority_status",
        "deductible",
        "deductible_amount",
        "reason_text",
        "evidence_refs"
      ],
      "properties": {
        "tenant_name": {
          "$ref": "#/$defs/nullableString"
        },
        "deposit_amount": {
          "$ref": "#/$defs/amountField"
        },
        "resident_registration_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "occupancy_status": {
          "type": "string",
          "enum": [
            "unknown",
            "occupied",
            "not_occupied",
            "contested"
          ]
        },
        "fixed_date_exists": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "small_tenant_issue": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "priority_status": {
          "type": "string",
          "enum": [
            "unknown",
            "senior",
            "junior",
            "non-opposable",
            "contested"
          ]
        },
        "deductible": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "deductible_amount": {
          "$ref": "#/$defs/amountField"
        },
        "reason_text": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "leaseDepositDeductibility": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "exists",
        "deductible",
        "total_lease_deposit",
        "deductible_amount",
        "non_deductible_amount",
        "priority_analysis"
      ],
      "properties": {
        "exists": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "deductible": {
          "type": "string",
          "enum": [
            "yes",
            "no",
            "unknown"
          ]
        },
        "total_lease_deposit": {
          "$ref": "#/$defs/amountField"
        },
        "deductible_amount": {
          "$ref": "#/$defs/amountField"
        },
        "non_deductible_amount": {
          "$ref": "#/$defs/amountField"
        },
        "priority_analysis": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "tenant_has_possession",
            "tenant_has_resident_registration",
            "fixed_date_exists",
            "small_tenant_issue",
            "senior_mortgage_preexists",
            "will_leasehold_be_extinguished_in_auction",
            "reason_text",
            "evidence_refs"
          ],
          "properties": {
            "tenant_has_possession": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "tenant_has_resident_registration": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "fixed_date_exists": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "small_tenant_issue": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "senior_mortgage_preexists": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "will_leasehold_be_extinguished_in_auction": {
              "$ref": "#/$defs/nullableBoolean"
            },
            "reason_text": {
              "$ref": "#/$defs/nullableString"
            },
            "evidence_refs": {
              "$ref": "#/$defs/evidenceRefs"
            }
          }
        }
      }
    },
    "nonDeductibleAttachmentClaimItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "claimholder_name",
        "kind",
        "amount",
        "deductible_in_value_compensation",
        "reason_text",
        "evidence_refs"
      ],
      "properties": {
        "claimholder_name": {
          "$ref": "#/$defs/nullableString"
        },
        "kind": {
          "type": ["string", "null"],
          "enum": [
            "가압류",
            "압류",
            "가처분",
            null
          ]
        },
        "amount": {
          "$ref": "#/$defs/amountField"
        },
        "deductible_in_value_compensation": {
          "const": false
        },
        "reason_text": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "encumbrances": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "mortgages_existing_at_fraudulent_act",
        "mortgages_still_existing_at_close",
        "other_real_rights_or_burdens",
        "tenant_rights",
        "lease_deposit_deductibility",
        "non_deductible_attachment_claims"
      ],
      "properties": {
        "mortgages_existing_at_fraudulent_act": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/encumbranceMortgageItem"
          }
        },
        "mortgages_still_existing_at_close": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/encumbranceMortgageItem"
          }
        },
        "other_real_rights_or_burdens": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/otherBurdenItem"
          }
        },
        "tenant_rights": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/tenantRightItem"
          }
        },
        "lease_deposit_deductibility": {
          "$ref": "#/$defs/leaseDepositDeductibility"
        },
        "non_deductible_attachment_claims": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/nonDeductibleAttachmentClaimItem"
          }
        }
      }
    },
    "commonCollateralValue": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "gross_property_value_at_close",
        "deduction_components",
        "calculation_formula_text",
        "common_collateral_value"
      ],
      "properties": {
        "gross_property_value_at_close": {
          "$ref": "#/$defs/amountField"
        },
        "deduction_components": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "mortgages_existing_at_act_total",
            "mortgages_still_existing_at_close_total",
            "deductible_lease_deposit_total",
            "other_deductible_burdens_total",
            "non_deductible_attachment_total"
          ],
          "properties": {
            "mortgages_existing_at_act_total": {
              "$ref": "#/$defs/amountField"
            },
            "mortgages_still_existing_at_close_total": {
              "$ref": "#/$defs/amountField"
            },
            "deductible_lease_deposit_total": {
              "$ref": "#/$defs/amountField"
            },
            "other_deductible_burdens_total": {
              "$ref": "#/$defs/amountField"
            },
            "non_deductible_attachment_total": {
              "$ref": "#/$defs/amountField"
            }
          }
        },
        "calculation_formula_text": {
          "$ref": "#/$defs/nullableString"
        },
        "common_collateral_value": {
          "$ref": "#/$defs/amountField"
        }
      }
    },
    "beneficiaryGain": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "benefit_type",
        "benefit_basis",
        "raw_gain_amount",
        "adjustments",
        "beneficiary_gain"
      ],
      "properties": {
        "benefit_type": {
          "$ref": "#/$defs/nullableString"
        },
        "benefit_basis": {
          "$ref": "#/$defs/nullableString"
        },
        "raw_gain_amount": {
          "$ref": "#/$defs/amountField"
        },
        "adjustments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/otherNonCashConsiderationItem"
          }
        },
        "beneficiary_gain": {
          "$ref": "#/$defs/amountField"
        }
      }
    },
    "underlyingClaim": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "underlying_obligation_type",
        "contract_or_occurrence_date",
        "maturity_date",
        "principal_original",
        "already_recovered_before_act",
        "already_recovered_after_act_before_close",
        "remaining_exposure_at_close"
      ],
      "properties": {
        "underlying_obligation_type": {
          "$ref": "#/$defs/nullableString"
        },
        "contract_or_occurrence_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "maturity_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "principal_original": {
          "$ref": "#/$defs/amountField"
        },
        "already_recovered_before_act": {
          "$ref": "#/$defs/amountField"
        },
        "already_recovered_after_act_before_close": {
          "$ref": "#/$defs/amountField"
        },
        "remaining_exposure_at_close": {
          "$ref": "#/$defs/amountField"
        }
      }
    },
    "securityAnalysis": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "is_fully_secured_at_act",
        "secured_portion_at_act",
        "unsecured_portion_at_act",
        "why_unsecured_portion_exists",
        "evidence_refs"
      ],
      "properties": {
        "is_fully_secured_at_act": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "secured_portion_at_act": {
          "$ref": "#/$defs/amountField"
        },
        "unsecured_portion_at_act": {
          "$ref": "#/$defs/amountField"
        },
        "why_unsecured_portion_exists": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "interestRules": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "ordinary_interest_rate_text",
        "default_interest_rate_text",
        "default_interest_start_date",
        "interest_calculation_method",
        "interest_compounding_issue",
        "evidence_refs"
      ],
      "properties": {
        "ordinary_interest_rate_text": {
          "$ref": "#/$defs/nullableString"
        },
        "default_interest_rate_text": {
          "$ref": "#/$defs/nullableString"
        },
        "default_interest_start_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "interest_calculation_method": {
          "$ref": "#/$defs/nullableString"
        },
        "interest_compounding_issue": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "preCloseInterestForReliefText": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "should_render_in_relief",
        "rendered_principal_component",
        "rendered_interest_start_date",
        "rendered_interest_end_marker",
        "rendered_rate_text",
        "rendering_reason"
      ],
      "properties": {
        "should_render_in_relief": {
          "$ref": "#/$defs/nullableBoolean"
        },
        "rendered_principal_component": {
          "$ref": "#/$defs/amountField"
        },
        "rendered_interest_start_date": {
          "$ref": "#/$defs/nullableDate"
        },
        "rendered_interest_end_marker": {
          "type": ["string", "null"],
          "enum": [
            "이 사건 변론종결일까지",
            null
          ]
        },
        "rendered_rate_text": {
          "$ref": "#/$defs/nullableString"
        },
        "rendering_reason": {
          "$ref": "#/$defs/nullableString"
        }
      }
    },
    "postFinalityInterestForReliefText": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "should_render_in_relief",
        "interest_start_marker",
        "interest_end_marker",
        "rate_text",
        "legal_basis_text"
      ],
      "properties": {
        "should_render_in_relief": {
          "type": "boolean"
        },
        "interest_start_marker": {
          "type": "string",
          "enum": [
            "이 판결 확정일 다음날부터"
          ]
        },
        "interest_end_marker": {
          "type": "string",
          "enum": [
            "다 갚는 날까지"
          ]
        },
        "rate_text": {
          "$ref": "#/$defs/nullableString"
        },
        "legal_basis_text": {
          "$ref": "#/$defs/nullableString"
        }
      }
    },
    "plaintiffRecoveryCap": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "cap_rule",
        "amount"
      ],
      "properties": {
        "cap_rule": {
          "type": "string",
          "const": "min(common_collateral_value, plaintiff_preserved_claim_total, beneficiary_gain)"
        },
        "amount": {
          "$ref": "#/$defs/amountField"
        }
      }
    },
    "plaintiffPreservedClaim": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "plaintiff_id",
        "name",
        "claim_type",
        "underlying_claim",
        "security_analysis",
        "interest_rules",
        "plaintiff_preserved_claim_principal",
        "plaintiff_preserved_claim_interest_until_close",
        "plaintiff_preserved_claim_total",
        "plaintiff_recovery_cap",
        "pre_close_interest_for_relief_text",
        "post_finality_interest_for_relief_text",
        "evidence_refs"
      ],
      "properties": {
        "plaintiff_id": {
          "$ref": "#/$defs/nullableString"
        },
        "name": {
          "$ref": "#/$defs/nullableString"
        },
        "claim_type": {
          "$ref": "#/$defs/nullableString"
        },
        "underlying_claim": {
          "$ref": "#/$defs/underlyingClaim"
        },
        "security_analysis": {
          "$ref": "#/$defs/securityAnalysis"
        },
        "interest_rules": {
          "$ref": "#/$defs/interestRules"
        },
        "plaintiff_preserved_claim_principal": {
          "$ref": "#/$defs/amountField"
        },
        "plaintiff_preserved_claim_interest_until_close": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "krw",
            "status",
            "calculation_start_date",
            "calculation_end_date",
            "rate_text",
            "basis",
            "evidence_refs"
          ],
          "properties": {
            "krw": {
              "type": ["integer", "null"],
              "minimum": 0
            },
            "status": {
              "$ref": "#/$defs/statusEnum"
            },
            "calculation_start_date": {
              "$ref": "#/$defs/nullableDate"
            },
            "calculation_end_date": {
              "$ref": "#/$defs/nullableDate"
            },
            "rate_text": {
              "$ref": "#/$defs/nullableString"
            },
            "basis": {
              "$ref": "#/$defs/nullableString"
            },
            "evidence_refs": {
              "$ref": "#/$defs/evidenceRefs"
            }
          }
        },
        "plaintiff_preserved_claim_total": {
          "$ref": "#/$defs/amountField"
        },
        "plaintiff_recovery_cap": {
          "$ref": "#/$defs/plaintiffRecoveryCap"
        },
        "pre_close_interest_for_relief_text": {
          "$ref": "#/$defs/preCloseInterestForReliefText"
        },
        "post_finality_interest_for_relief_text": {
          "$ref": "#/$defs/postFinalityInterestForReliefText"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        }
      }
    },
    "overallCapAndRecoveryStructure": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "global_returnable_value",
        "multi_plaintiff_structure_note",
        "is_pro_rata_allocation_used",
        "why_not_pro_rata_or_why_special_allocation_used"
      ],
      "properties": {
        "global_returnable_value": {
          "$ref": "#/$defs/amountField"
        },
        "multi_plaintiff_structure_note": {
          "$ref": "#/$defs/nullableString"
        },
        "is_pro_rata_allocation_used": {
          "type": "boolean"
        },
        "why_not_pro_rata_or_why_special_allocation_used": {
          "$ref": "#/$defs/nullableString"
        }
      }
    },
    "draftingBlock": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "plaintiff_id",
        "plaintiff_name",
        "relief_block_type",
        "principal_text",
        "pre_close_interest_text",
        "post_finality_interest_text",
        "combined_relief_text"
      ],
      "properties": {
        "plaintiff_id": {
          "$ref": "#/$defs/nullableString"
        },
        "plaintiff_name": {
          "$ref": "#/$defs/nullableString"
        },
        "relief_block_type": {
          "type": "string",
          "const": "value_compensation"
        },
        "principal_text": {
          "$ref": "#/$defs/nullableString"
        },
        "pre_close_interest_text": {
          "$ref": "#/$defs/nullableString"
        },
        "post_finality_interest_text": {
          "$ref": "#/$defs/nullableString"
        },
        "combined_relief_text": {
          "$ref": "#/$defs/nullableString"
        }
      }
    },
    "reliefDraftingInputs": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "cancelation_scope",
        "drafting_blocks",
        "full_relief_summary_candidate"
      ],
      "properties": {
        "cancelation_scope": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "scope_type",
            "scope_amount",
            "scope_text_for_relief"
          ],
          "properties": {
            "scope_type": {
              "$ref": "#/$defs/nullableString"
            },
            "scope_amount": {
              "$ref": "#/$defs/amountField"
            },
            "scope_text_for_relief": {
              "$ref": "#/$defs/nullableString"
            }
          }
        },
        "drafting_blocks": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/draftingBlock"
          }
        },
        "full_relief_summary_candidate": {
          "$ref": "#/$defs/nullableString"
        }
      }
    },
    "fieldLevelEvidenceIndexItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "field_path",
        "evidence_refs",
        "support_strength",
        "note"
      ],
      "properties": {
        "field_path": {
          "$ref": "#/$defs/nullableString"
        },
        "evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        },
        "support_strength": {
          "$ref": "#/$defs/supportStrengthEnum"
        },
        "note": {
          "$ref": "#/$defs/nullableString"
        }
      }
    },
    "evidenceMap": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "core_evidence_refs",
        "field_level_evidence_index"
      ],
      "properties": {
        "core_evidence_refs": {
          "$ref": "#/$defs/evidenceRefs"
        },
        "field_level_evidence_index": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/fieldLevelEvidenceIndexItem"
          }
        }
      }
    },
    "assumptionItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "label",
        "description",
        "severity"
      ],
      "properties": {
        "label": {
          "$ref": "#/$defs/nullableString"
        },
        "description": {
          "$ref": "#/$defs/nullableString"
        },
        "severity": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        }
      }
    },
    "assumptionsAndUnknowns": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "assumptions_used",
        "contested_points",
        "unknown_but_material_fields",
        "fields_blocking_numeric_finalization"
      ],
      "properties": {
        "assumptions_used": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/assumptionItem"
          }
        },
        "contested_points": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/assumptionItem"
          }
        },
        "unknown_but_material_fields": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/nullableString"
          }
        },
        "fields_blocking_numeric_finalization": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/nullableString"
          }
        }
      }
    },
    "requiredFieldPresence": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "property_value_at_close_of_arguments",
        "mortgages_existing_at_fraudulent_act",
        "mortgages_still_existing_at_close",
        "lease_deposit_deductibility",
        "non_deductible_attachment_claims",
        "common_collateral_value",
        "plaintiff_preserved_claim_principal",
        "plaintiff_preserved_claim_interest_until_close",
        "plaintiff_preserved_claim_total",
        "beneficiary_gain",
        "plaintiff_recovery_cap"
      ],
      "properties": {
        "property_value_at_close_of_arguments": {
          "type": "boolean"
        },
        "mortgages_existing_at_fraudulent_act": {
          "type": "boolean"
        },
        "mortgages_still_existing_at_close": {
          "type": "boolean"
        },
        "lease_deposit_deductibility": {
          "type": "boolean"
        },
        "non_deductible_attachment_claims": {
          "type": "boolean"
        },
        "common_collateral_value": {
          "type": "boolean"
        },
        "plaintiff_preserved_claim_principal": {
          "type": "boolean"
        },
        "plaintiff_preserved_claim_interest_until_close": {
          "type": "boolean"
        },
        "plaintiff_preserved_claim_total": {
          "type": "boolean"
        },
        "beneficiary_gain": {
          "type": "boolean"
        },
        "plaintiff_recovery_cap": {
          "type": "boolean"
        }
      }
    },
    "crossChecks": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "value_at_close_present",
        "deduction_basis_consistent_with_act_time_rule",
        "still_existing_mortgages_also_deducted",
        "lease_deductibility_reasoned",
        "attachment_claims_marked_non_deductible",
        "each_plaintiff_separately_specified",
        "cap_rule_applied_per_plaintiff",
        "relief_text_matches_computed_numbers"
      ],
      "properties": {
        "value_at_close_present": {
          "type": "boolean"
        },
        "deduction_basis_consistent_with_act_time_rule": {
          "type": "boolean"
        },
        "still_existing_mortgages_also_deducted": {
          "type": "boolean"
        },
        "lease_deductibility_reasoned": {
          "type": "boolean"
        },
        "attachment_claims_marked_non_deductible": {
          "type": "boolean"
        },
        "each_plaintiff_separately_specified": {
          "type": "boolean"
        },
        "cap_rule_applied_per_plaintiff": {
          "type": "boolean"
        },
        "relief_text_matches_computed_numbers": {
          "type": "boolean"
        }
      }
    },
    "validationWarningItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "code",
        "message",
        "severity",
        "blocking",
        "field_paths"
      ],
      "properties": {
        "code": {
          "$ref": "#/$defs/nullableString"
        },
        "message": {
          "$ref": "#/$defs/nullableString"
        },
        "severity": {
          "type": "string",
          "enum": [
            "info",
            "warning",
            "error"
          ]
        },
        "blocking": {
          "type": "boolean"
        },
        "field_paths": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/nullableString"
          }
        }
      }
    },
    "validation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "required_field_presence",
        "cross_checks",
        "finalization_status",
        "validation_warnings"
      ],
      "properties": {
        "required_field_presence": {
          "$ref": "#/$defs/requiredFieldPresence"
        },
        "cross_checks": {
          "$ref": "#/$defs/crossChecks"
        },
        "finalization_status": {
          "$ref": "#/$defs/finalizationStatusEnum"
        },
        "validation_warnings": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/validationWarningItem"
          }
        }
      }
    },
    "computationAuditStep": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "step_no",
        "step_name",
        "input_fields",
        "output_fields",
        "formula_or_rule",
        "status"
      ],
      "properties": {
        "step_no": {
          "type": "integer",
          "minimum": 1
        },
        "step_name": {
          "type": "string"
        },
        "input_fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "output_fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "formula_or_rule": {
          "$ref": "#/$defs/nullableString"
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "done",
            "skipped",
            "failed"
          ]
        }
      }
    }
  }
}

이 초안의 실무상 의미는 분명합니다.

첫째, 이 스키마는 구조 검증용입니다. 즉, 필수 섹션 누락, 타입 오류, 원고별 분리 실패, 담보권/임차권/가압류 객체 누락은 잡아낼 수 있습니다.

둘째, 이 스키마만으로는 산술적 진실성까지 완전히 검증할 수는 없습니다. 예를 들어 plaintiff_recovery_cap.amount == min(common_collateral_value, plaintiff_preserved_claim_total, beneficiary_gain) 같은 규칙이나, mortgages_existing_at_fraudulent_act_total == mortgages_existing_at_fraudulent_act[].actual_secured_debt_at_act의 합계 같은 규칙은 JSON Schema보다 별도의 semantic validator가 담당하는 것이 맞습니다.

셋째, 따라서 실제 시스템에서는 다음 2단계가 바람직합니다.

  • 1단계: 위 JSON Schema로 구조·필수성 검증
  • 2단계: 별도 계산 검증기로 산식·법리 일치성 검증

원하시면 이어서 이 스키마를 바탕으로 semantic validator 규칙 목록까지 작성해 드리겠습니다.


질문

이 스키마를 바탕으로 semantic validator 규칙 목록까지 작성하라.

답변