{
  "schemaVersion": "sukuyo-validation-v1",
  "title": "OpenFate Sukuyo annotated calculation cases",
  "scope": "Seven synthetic, date-only, first-party calculation examples and three rejected-input checks. No customer birth records are used.",
  "convention": {
    "policyVersion": "1.0.0",
    "calendarConvention": "modern-astronomical-jst-winter-solstice-priority",
    "timezone": "Asia/Tokyo",
    "dayBoundary": "civil-midnight",
    "supportedDateRange": { "start": "1900-01-01", "end": "2099-12-31" },
    "lunarMonthStart": "The JST civil date containing the astronomical new moon is lunar day 1.",
    "leapMonth": "Winter-solstice priority; the first eligible month without a principal term is leap.",
    "mansion": "Modern 27-mansion month anchor plus lunar day; a leap month repeats its numbered month's anchor.",
    "birthTimeUsed": false,
    "birthPlaceUsed": false
  },
  "claimBoundary": "The pinned expected fields are OpenFate's selected-rule outputs and are rechecked against its deterministic engine. The cited National Astronomical Observatory of Japan material supports only the stated calendar dates or events, not mansion anchors, relationship meanings, report quality, predictive validity, independent certification, or a ranking against other tools.",
  "rejectedInputs": [
    { "date": "2024-02-30", "errorCode": "INVALID_DATE", "reason": "An impossible Gregorian civil date must not be normalized to another day." },
    { "date": "1899-12-31", "errorCode": "DATE_OUT_OF_RANGE", "reason": "A date before the declared 1900–2099 range must not produce a birth mansion." },
    { "date": "2100-01-01", "errorCode": "DATE_OUT_OF_RANGE", "reason": "A date after the declared 1900–2099 range must not produce a birth mansion." }
  ],
  "cases": [
    {
      "id": "ordinary-natal",
      "category": "natal",
      "teachingPoint": "A regular date first becomes an old-calendar date; the numbered month anchor and lunar day then determine the natal mansion.",
      "variants": [
        {
          "id": "birth-date",
          "input": { "date": "1986-10-19" },
          "expected": {
            "lunarDate": { "year": 1986, "month": 9, "day": 16, "isLeapMonth": false, "monthStartDate": "1986-10-04", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "畢",
            "ambiguityWindow": "standard"
          }
        }
      ],
      "relationship": null,
      "externalReferences": [],
      "limitation": "This is a first-party pinned calculation, not an independently reviewed reference chart or evidence of a life prediction."
    },
    {
      "id": "leap-tenth-month-1984",
      "category": "calendar-comparison",
      "teachingPoint": "The leap tenth month has its own new-moon start but repeats the regular tenth month's mansion anchor.",
      "variants": [
        {
          "id": "regular-tenth-month",
          "input": { "date": "1984-10-24" },
          "expected": {
            "lunarDate": { "year": 1984, "month": 10, "day": 1, "isLeapMonth": false, "monthStartDate": "1984-10-24", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "心",
            "ambiguityWindow": "standard"
          }
        },
        {
          "id": "leap-tenth-month",
          "input": { "date": "1984-11-23" },
          "expected": {
            "lunarDate": { "year": 1984, "month": 10, "day": 1, "isLeapMonth": true, "monthStartDate": "1984-11-23", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "心",
            "ambiguityWindow": "standard"
          }
        }
      ],
      "relationship": null,
      "externalReferences": [
        {
          "publisher": "National Astronomical Observatory of Japan",
          "url": "https://eco.mtk.nao.ac.jp/koyomi/topics/html/topics2014.html",
          "supports": "Its 1984–1985 table identifies 1984-10-24 as month 10 and 1984-11-23 as leap month 10.",
          "doesNotSupport": "The 心 mansion assignment or the modern anchor rule."
        }
      ],
      "limitation": "These are two different civil dates. Matching mansions do not mean the dates or any person's circumstances are equivalent."
    },
    {
      "id": "leap-ninth-month-2014",
      "category": "calendar-comparison",
      "teachingPoint": "A second documented leap-month example checks that the repeated anchor is not special-cased to 1984.",
      "variants": [
        {
          "id": "regular-ninth-month",
          "input": { "date": "2014-09-24" },
          "expected": {
            "lunarDate": { "year": 2014, "month": 9, "day": 1, "isLeapMonth": false, "monthStartDate": "2014-09-24", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "氐",
            "ambiguityWindow": "standard"
          }
        },
        {
          "id": "leap-ninth-month",
          "input": { "date": "2014-10-24" },
          "expected": {
            "lunarDate": { "year": 2014, "month": 9, "day": 1, "isLeapMonth": true, "monthStartDate": "2014-10-24", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "氐",
            "ambiguityWindow": "standard"
          }
        }
      ],
      "relationship": null,
      "externalReferences": [
        {
          "publisher": "National Astronomical Observatory of Japan",
          "url": "https://eco.mtk.nao.ac.jp/koyomi/topics/html/topics2014.html",
          "supports": "Its 2014–2015 table identifies 2014-09-24 as month 9 and 2014-10-24 as leap month 9.",
          "doesNotSupport": "The 氐 mansion assignment or predictive claims."
        }
      ],
      "limitation": "The source checks the old-calendar month labels. The mansion result remains a regression of OpenFate's declared 27-mansion anchor convention."
    },
    {
      "id": "winter-solstice-priority-2033",
      "category": "calendar-comparison",
      "teachingPoint": "The selected winter-solstice-priority option makes 2033-12-22 leap month 11, then 2034-01-20 month 12.",
      "variants": [
        {
          "id": "regular-eleventh-month",
          "input": { "date": "2033-11-22" },
          "expected": {
            "lunarDate": { "year": 2033, "month": 11, "day": 1, "isLeapMonth": false, "monthStartDate": "2033-11-22", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "斗",
            "ambiguityWindow": "2033-winter-solstice-priority"
          }
        },
        {
          "id": "leap-eleventh-month",
          "input": { "date": "2033-12-22" },
          "expected": {
            "lunarDate": { "year": 2033, "month": 11, "day": 1, "isLeapMonth": true, "monthStartDate": "2033-12-22", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "斗",
            "ambiguityWindow": "2033-winter-solstice-priority"
          }
        },
        {
          "id": "following-twelfth-month",
          "input": { "date": "2034-01-20" },
          "expected": {
            "lunarDate": { "year": 2033, "month": 12, "day": 1, "isLeapMonth": false, "monthStartDate": "2034-01-20", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "虚",
            "ambiguityWindow": "2033-winter-solstice-priority"
          }
        }
      ],
      "relationship": null,
      "externalReferences": [
        {
          "publisher": "National Astronomical Observatory of Japan",
          "url": "https://eco.mtk.nao.ac.jp/koyomi/topics/html/topics2014.html",
          "supports": "Proposal 1 in its 2033–2034 table labels these three new-moon dates month 11, leap month 11, and month 12.",
          "doesNotSupport": "An official universal resolution of the 2033 ambiguity or the mansion assignments."
        }
      ],
      "limitation": "2033 has multiple published old-calendar proposals. This example follows one disclosed proposal; another convention can produce different lunar month labels."
    },
    {
      "id": "near-midnight-new-moon-2005",
      "category": "boundary-comparison",
      "teachingPoint": "A new moon one minute after JST midnight changes the lunar day at the civil-date boundary, not at a guessed birth hour.",
      "variants": [
        {
          "id": "before-new-moon-date",
          "input": { "date": "2005-12-01" },
          "expected": {
            "lunarDate": { "year": 2005, "month": 10, "day": 30, "isLeapMonth": false, "monthStartDate": "2005-11-02", "boundaryRisk": true, "boundaryRiskReasons": ["new-moon-near-midnight"] },
            "natalMansion": "箕",
            "ambiguityWindow": "standard"
          }
        },
        {
          "id": "new-moon-date",
          "input": { "date": "2005-12-02" },
          "expected": {
            "lunarDate": { "year": 2005, "month": 11, "day": 1, "isLeapMonth": false, "monthStartDate": "2005-12-02", "boundaryRisk": true, "boundaryRiskReasons": ["new-moon-near-midnight"] },
            "natalMansion": "斗",
            "ambiguityWindow": "standard"
          }
        }
      ],
      "relationship": null,
      "externalReferences": [
        {
          "publisher": "National Astronomical Observatory of Japan",
          "url": "https://eco.mtk.nao.ac.jp/koyomi/yoko/2005/rekiyou053.html",
          "supports": "Its 2005 moon-phase table lists the new moon on December 2 at 00:01 Japan Standard Time.",
          "doesNotSupport": "The mansion assignment or OpenFate's boundary-risk flag, which is its own caution rule."
        }
      ],
      "limitation": "A near-midnight caution flag identifies a convention-sensitive calendar event; it does not mean the user's birth time was considered or that the output is probabilistic."
    },
    {
      "id": "near-midnight-principal-term-2012",
      "category": "boundary-comparison",
      "teachingPoint": "A date can carry both new-moon and principal-term sensitivity warnings while its lunar month and mansion remain deterministic under the selected rule.",
      "variants": [
        {
          "id": "preceding-date",
          "input": { "date": "2012-06-18" },
          "expected": {
            "lunarDate": { "year": 2012, "month": 4, "day": 29, "isLeapMonth": false, "monthStartDate": "2012-05-21", "boundaryRisk": true, "boundaryRiskReasons": ["principal-term-near-midnight"] },
            "natalMansion": "觜",
            "ambiguityWindow": "standard"
          }
        },
        {
          "id": "two-warnings-date",
          "input": { "date": "2012-06-19" },
          "expected": {
            "lunarDate": { "year": 2012, "month": 4, "day": 30, "isLeapMonth": false, "monthStartDate": "2012-05-21", "boundaryRisk": true, "boundaryRiskReasons": ["new-moon-near-midnight", "principal-term-near-midnight"] },
            "natalMansion": "参",
            "ambiguityWindow": "standard"
          }
        },
        {
          "id": "following-new-moon-date",
          "input": { "date": "2012-06-20" },
          "expected": {
            "lunarDate": { "year": 2012, "month": 5, "day": 1, "isLeapMonth": false, "monthStartDate": "2012-06-20", "boundaryRisk": true, "boundaryRiskReasons": ["new-moon-near-midnight"] },
            "natalMansion": "参",
            "ambiguityWindow": "standard"
          }
        }
      ],
      "relationship": null,
      "externalReferences": [],
      "limitation": "The sensitivity flags and all outputs in this example are OpenFate first-party regression facts; no external comparison is asserted for these three dates."
    },
    {
      "id": "directional-relationship",
      "category": "directional-pair",
      "teachingPoint": "The same pair has one relationship family but different directional labels: the primary sees 成 and the counterpart sees 危.",
      "variants": [
        {
          "id": "primary",
          "input": { "date": "1986-10-19" },
          "expected": {
            "lunarDate": { "year": 1986, "month": 9, "day": 16, "isLeapMonth": false, "monthStartDate": "1986-10-04", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "畢",
            "ambiguityWindow": "standard"
          }
        },
        {
          "id": "counterpart",
          "input": { "date": "1990-01-01" },
          "expected": {
            "lunarDate": { "year": 1989, "month": 12, "day": 5, "isLeapMonth": false, "monthStartDate": "1989-12-28", "boundaryRisk": false, "boundaryRiskReasons": [] },
            "natalMansion": "奎",
            "ambiguityWindow": "standard"
          }
        }
      ],
      "relationship": {
        "primaryVariant": "primary",
        "counterpartVariant": "counterpart",
        "expected": {
          "family": "危成",
          "distance": "near",
          "primaryToCounterpart": { "offset": 23, "relation": "成", "distance": "near" },
          "counterpartToPrimary": { "offset": 4, "relation": "危", "distance": "near" }
        }
      },
      "externalReferences": [],
      "limitation": "The two dates are synthetic stand-ins. 危 and 成 are directional tradition labels, not an objective score or a verdict about real partners."
    }
  ]
}
