{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.supasaju.com/schemas/weolun.json",
  "title": "weolun 모듈 응답",
  "description": "실제 엔진 출력에서 생성된 스키마입니다.",
  "type": "object",
  "properties": {
    "natalSaryeong": {
      "type": "object",
      "properties": {
        "stem": {
          "type": "object",
          "properties": {
            "index": {
              "type": "integer",
              "examples": [
                0,
                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": [
                "yang",
                "yin"
              ]
            },
            "polarityKo": {
              "type": "string",
              "examples": [
                "양",
                "음"
              ]
            },
            "sipseong": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "ko": {
                  "type": "string"
                },
                "han": {
                  "type": "string"
                },
                "group": {
                  "type": "string"
                },
                "groupKo": {
                  "type": "string"
                },
                "meaning": {
                  "type": "string"
                }
              },
              "required": [
                "group",
                "groupKo",
                "han",
                "id",
                "ko"
              ]
            }
          },
          "required": [
            "element",
            "elementHan",
            "elementKo",
            "han",
            "index",
            "ko",
            "polarity",
            "polarityKo",
            "sipseong"
          ]
        },
        "role": {
          "type": "string",
          "examples": [
            "yeogi",
            "jeonggi"
          ]
        },
        "roleKo": {
          "type": "string",
          "examples": [
            "여기",
            "정기"
          ]
        },
        "roleHan": {
          "type": "string",
          "examples": [
            "餘氣",
            "正氣"
          ]
        },
        "elapsedDays": {
          "type": "number",
          "examples": [
            8.6,
            24.8
          ]
        },
        "firstHalf": {
          "type": "boolean"
        },
        "schedule": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "stem": {
                "type": "object",
                "properties": {
                  "index": {
                    "type": "integer"
                  },
                  "han": {
                    "type": "string"
                  },
                  "ko": {
                    "type": "string"
                  },
                  "element": {
                    "type": "string"
                  },
                  "elementKo": {
                    "type": "string"
                  },
                  "elementHan": {
                    "type": "string"
                  },
                  "polarity": {
                    "type": "string"
                  },
                  "polarityKo": {
                    "type": "string"
                  },
                  "sipseong": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "ko": {
                        "type": "string"
                      },
                      "han": {
                        "type": "string"
                      },
                      "group": {
                        "type": "string"
                      },
                      "groupKo": {
                        "type": "string"
                      },
                      "meaning": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "group",
                      "groupKo",
                      "han",
                      "id",
                      "ko"
                    ]
                  }
                },
                "required": [
                  "element",
                  "elementHan",
                  "elementKo",
                  "han",
                  "index",
                  "ko",
                  "polarity",
                  "polarityKo",
                  "sipseong"
                ]
              },
              "role": {
                "type": "string"
              },
              "roleKo": {
                "type": "string"
              },
              "roleHan": {
                "type": "string"
              },
              "fromDay": {
                "type": "integer"
              },
              "toDay": {
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "required": [
              "fromDay",
              "role",
              "roleHan",
              "roleKo",
              "stem",
              "toDay"
            ]
          }
        },
        "basis": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "elapsedDays",
        "firstHalf",
        "role",
        "roleHan",
        "roleKo",
        "schedule",
        "stem"
      ]
    },
    "referenceMonth": {
      "type": "string",
      "examples": [
        "2026-09"
      ]
    },
    "terms": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ganji": {
            "type": "string",
            "examples": [
              "병신",
              "정유"
            ]
          },
          "ganjiHan": {
            "type": "string",
            "examples": [
              "丙申",
              "丁酉"
            ]
          },
          "ganjiIndex": {
            "type": "integer",
            "examples": [
              32,
              33
            ]
          },
          "stem": {
            "type": "object",
            "properties": {
              "index": {
                "type": "integer"
              },
              "han": {
                "type": "string"
              },
              "ko": {
                "type": "string"
              },
              "element": {
                "type": "string"
              },
              "elementKo": {
                "type": "string"
              },
              "elementHan": {
                "type": "string"
              },
              "polarity": {
                "type": "string"
              },
              "polarityKo": {
                "type": "string"
              },
              "sipseong": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "ko": {
                    "type": "string"
                  },
                  "han": {
                    "type": "string"
                  },
                  "group": {
                    "type": "string"
                  },
                  "groupKo": {
                    "type": "string"
                  },
                  "meaning": {
                    "type": "string"
                  }
                },
                "required": [
                  "group",
                  "groupKo",
                  "han",
                  "id",
                  "ko"
                ]
              }
            },
            "required": [
              "element",
              "elementHan",
              "elementKo",
              "han",
              "index",
              "ko",
              "polarity",
              "polarityKo",
              "sipseong"
            ]
          },
          "branch": {
            "type": "object",
            "properties": {
              "index": {
                "type": "integer"
              },
              "han": {
                "type": "string"
              },
              "ko": {
                "type": "string"
              },
              "element": {
                "type": "string"
              },
              "elementKo": {
                "type": "string"
              },
              "elementHan": {
                "type": "string"
              },
              "polarity": {
                "type": "string"
              },
              "polarityKo": {
                "type": "string"
              },
              "animalKo": {
                "type": "string"
              },
              "sipseong": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "ko": {
                    "type": "string"
                  },
                  "han": {
                    "type": "string"
                  },
                  "group": {
                    "type": "string"
                  },
                  "groupKo": {
                    "type": "string"
                  },
                  "meaning": {
                    "type": "string"
                  }
                },
                "required": [
                  "group",
                  "groupKo",
                  "han",
                  "id",
                  "ko"
                ]
              },
              "hiddenStems": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "stem": {
                      "type": "object",
                      "properties": {
                        "index": {
                          "type": "integer"
                        },
                        "han": {
                          "type": "string"
                        },
                        "ko": {
                          "type": "string"
                        },
                        "element": {
                          "type": "string"
                        },
                        "elementKo": {
                          "type": "string"
                        },
                        "elementHan": {
                          "type": "string"
                        },
                        "polarity": {
                          "type": "string"
                        },
                        "polarityKo": {
                          "type": "string"
                        },
                        "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"
                    },
                    "roleKo": {
                      "type": "string"
                    },
                    "roleHan": {
                      "type": "string"
                    },
                    "days": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "days",
                    "role",
                    "roleHan",
                    "roleKo",
                    "stem"
                  ]
                }
              }
            },
            "required": [
              "animalKo",
              "element",
              "elementHan",
              "elementKo",
              "han",
              "hiddenStems",
              "index",
              "ko",
              "polarity",
              "polarityKo",
              "sipseong"
            ]
          },
          "twelveStage": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "ko": {
                "type": "string"
              },
              "han": {
                "type": "string"
              },
              "order": {
                "type": "integer"
              },
              "keyword": {
                "type": "string"
              },
              "phase": {
                "type": "string"
              },
              "meaning": {
                "type": "string"
              }
            },
            "required": [
              "han",
              "id",
              "ko",
              "order"
            ]
          },
          "relations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string"
                },
                "kindKo": {
                  "type": "string"
                },
                "withPosition": {
                  "type": "string"
                },
                "withPositionKo": {
                  "type": "string"
                },
                "withPositions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "glyphs": {
                  "type": "string"
                },
                "glyphsHan": {
                  "type": "string"
                },
                "meaning": {
                  "type": "string"
                },
                "reasoning": {
                  "type": "string"
                }
              },
              "required": [
                "glyphs",
                "glyphsHan",
                "kind",
                "kindKo",
                "withPosition",
                "withPositionKo",
                "withPositions"
              ]
            }
          },
          "twelveSinsal": {
            "type": "object",
            "properties": {
              "byYear": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "ko": {
                    "type": "string"
                  },
                  "han": {
                    "type": "string"
                  },
                  "meaning": {
                    "type": "string"
                  }
                },
                "required": [
                  "han",
                  "id",
                  "ko"
                ]
              },
              "byDay": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "ko": {
                    "type": "string"
                  },
                  "han": {
                    "type": "string"
                  },
                  "meaning": {
                    "type": "string"
                  }
                },
                "required": [
                  "han",
                  "id",
                  "ko"
                ]
              }
            },
            "required": [
              "byDay",
              "byYear"
            ]
          },
          "fortuneSinsal": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "ko": {
                  "type": "string"
                },
                "han": {
                  "type": "string"
                }
              },
              "required": [
                "han",
                "id",
                "ko"
              ]
            }
          },
          "sinsalOnFortune": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "ko": {
                  "type": "string"
                },
                "han": {
                  "type": "string"
                },
                "basis": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "meaning": {
                  "type": "string"
                }
              },
              "required": [
                "han",
                "id",
                "ko"
              ]
            }
          },
          "isGongmang": {
            "type": "boolean"
          },
          "startsAt": {
            "type": "string",
            "examples": [
              "2026-08-07 20:43",
              "2026-09-07 23:41"
            ]
          },
          "endsAt": {
            "type": "string",
            "examples": [
              "2026-09-07 23:40",
              "2026-10-08 15:28"
            ]
          },
          "jeolKo": {
            "type": "string",
            "examples": [
              "입추",
              "백로"
            ]
          },
          "isCurrent": {
            "type": "boolean"
          },
          "meaning": {
            "type": "string"
          }
        },
        "required": [
          "branch",
          "endsAt",
          "fortuneSinsal",
          "ganji",
          "ganjiHan",
          "ganjiIndex",
          "isCurrent",
          "isGongmang",
          "jeolKo",
          "relations",
          "sinsalOnFortune",
          "startsAt",
          "stem",
          "twelveSinsal",
          "twelveStage"
        ]
      }
    },
    "basis": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "natalSaryeong",
    "referenceMonth",
    "terms"
  ]
}