{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.supasaju.com/schemas/gyeokguk.json",
  "title": "gyeokguk 모듈 응답",
  "description": "실제 엔진 출력에서 생성된 스키마입니다.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "examples": [
        "jeonggwan",
        "jeongin"
      ]
    },
    "ko": {
      "type": "string",
      "examples": [
        "정관격",
        "정인격"
      ]
    },
    "han": {
      "type": "string",
      "examples": [
        "正官格",
        "正印格"
      ]
    },
    "kind": {
      "type": "string",
      "examples": [
        "regular",
        "special"
      ]
    },
    "basedOn": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "stem": {
          "type": "object",
          "properties": {
            "index": {
              "type": "integer",
              "examples": [
                1,
                4
              ]
            },
            "han": {
              "type": "string",
              "examples": [
                "乙",
                "戊"
              ]
            },
            "ko": {
              "type": "string",
              "examples": [
                "을",
                "무"
              ]
            },
            "element": {
              "type": "string",
              "examples": [
                "wood",
                "earth"
              ]
            },
            "elementKo": {
              "type": "string",
              "examples": [
                "목",
                "토"
              ]
            },
            "elementHan": {
              "type": "string",
              "examples": [
                "木",
                "土"
              ]
            },
            "polarity": {
              "type": "string",
              "examples": [
                "yin",
                "yang"
              ]
            },
            "polarityKo": {
              "type": "string",
              "examples": [
                "음",
                "양"
              ]
            },
            "sipseong": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "ko": {
                  "type": "string"
                },
                "han": {
                  "type": "string"
                },
                "group": {
                  "type": "string"
                },
                "groupKo": {
                  "type": "string"
                }
              },
              "required": [
                "group",
                "groupKo",
                "han",
                "id",
                "ko"
              ]
            }
          },
          "required": [
            "element",
            "elementHan",
            "elementKo",
            "han",
            "index",
            "ko",
            "polarity",
            "polarityKo",
            "sipseong"
          ]
        },
        "role": {
          "type": "string",
          "examples": [
            "jeonggi",
            "yeogi"
          ]
        },
        "roleKo": {
          "type": "string",
          "examples": [
            "정기",
            "여기"
          ]
        },
        "roleHan": {
          "type": "string",
          "examples": [
            "正氣",
            "餘氣"
          ]
        },
        "transparent": {
          "type": "boolean"
        },
        "transparentAt": {
          "type": [
            "null",
            "string"
          ],
          "examples": [
            "month",
            "hour"
          ]
        }
      },
      "required": []
    },
    "formation": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "examples": [
            "seong",
            "pa"
          ]
        },
        "statusKo": {
          "type": "string",
          "examples": [
            "성격",
            "파격"
          ]
        },
        "reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string"
              },
              "kindKo": {
                "type": "string"
              },
              "kindHan": {
                "type": "string"
              },
              "text": {
                "type": "string"
              }
            },
            "required": [
              "kind",
              "kindHan",
              "kindKo",
              "text"
            ]
          }
        },
        "reasoning": {
          "type": "string"
        }
      },
      "required": [
        "reasons",
        "status",
        "statusKo"
      ]
    },
    "extreme": {
      "type": "object",
      "properties": {
        "candidate": {
          "type": [
            "null",
            "string"
          ],
          "examples": [
            "weak",
            "strong"
          ]
        },
        "established": {
          "type": "boolean"
        },
        "pseudo": {
          "type": "boolean"
        },
        "type": {
          "type": [
            "null",
            "string"
          ],
          "examples": [
            "jongse",
            "jonggang"
          ]
        },
        "dominantGroup": {
          "type": [
            "null",
            "string"
          ],
          "examples": [
            "jaeseong",
            "inseong"
          ]
        },
        "reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "text": {
                "type": "string"
              }
            },
            "required": [
              "text"
            ]
          }
        }
      },
      "required": [
        "candidate",
        "dominantGroup",
        "established",
        "pseudo",
        "reasons",
        "type"
      ]
    },
    "sangsin": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "group": {
          "type": "string",
          "examples": [
            "inseong",
            "gwanseong"
          ]
        },
        "groupKo": {
          "type": "string",
          "examples": [
            "인성",
            "관성"
          ]
        },
        "present": {
          "type": "boolean"
        },
        "reasoning": {
          "type": "string",
          "examples": [
            "정관은 재로 생하고 인으로 보호한다(순용)",
            "인은 관살로 생한다(순용)"
          ]
        },
        "meaning": {
          "type": "string"
        }
      },
      "required": []
    },
    "meaning": {
      "type": "string"
    },
    "basis": {
      "type": "array",
      "items": {
        "type": "string",
        "examples": [
          "월지 정기 을(乙)이 월간에 투출해 정관격으로 잡았다.",
          "월지 정기 기(己)가 월간에 투출해 상관격으로 잡았다."
        ]
      }
    }
  },
  "required": [
    "basedOn",
    "extreme",
    "formation",
    "han",
    "id",
    "kind",
    "ko",
    "sangsin"
  ]
}