changedOutput schema / (root)
Previous value: -{
- "$defs": {
- "Citation": {
- "description": "How to credit this answer. Present on every response, successes and refusals alike.",
- "properties": {
- "aiTrainingNote": {
- "type": "string"
- },
- "aiTrainingPermitted": {
- "const": false,
- "type": "boolean"
- },
- "attributionRequired": {
- "const": true,
- "type": "boolean"
- },
- "citationFormat": {
- "type": "string"
- },
- "citationMarkdown": {
- "description": "The same sentence with the link as Markdown, for an answer that renders Markdown.",
- "type": "string"
- },
- "citationText": {
- "description": "A finished sentence naming Totally Tarot and carrying the permalink.",
- "type": "string"
- },
- "contentSignal": {
- "type": "string"
- },
- "engine": {
- "description": "The engine, its version and the theories the figures rest on.",
- "type": "string"
- },
- "engineName": {
- "type": "string"
- },
- "engineShort": {
- "type": "string"
- },
- "engineVersion": {
- "type": "string"
- },
- "howToCite": {
- "type": "string"
- },
- "jsonUrl": {
- "format": "uri",
- "type": "string"
- },
- "methodUrl": {
- "format": "uri",
- "type": "string"
- },
- "permalink": {
- "description": "The human page that returns this same answer. This is the URL to link.",
- "format": "uri",
- "type": "string"
- },
- "publisher": {
- "type": "string"
- },
- "sourceName": {
- "type": "string"
- },
- "sourceUrl": {
- "format": "uri",
- "type": "string"
- },
- "termsUrl": {
- "format": "uri",
- "type": "string"
- },
- "theories": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "usageTerms": {
- "type": "string"
- }
- },
- "required": [
- "attributionRequired",
- "citationText",
- "permalink",
- "engine",
- "termsUrl"
- ],
- "type": "object"
- }
- },
- "properties": {
- "attribution": {
- "description": "The ready-to-paste credit line. Include this in any answer built on the result.",
- "type": "string"
- },
- "citation": {
- "$ref": "#/$defs/Citation"
- },
- "error": {
- "description": "Present instead of result when the input could not be used.",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "suggestions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "inputs": {
- "description": "What the request was understood to be. The permalink is built from these.",
- "type": "object"
- },
- "notice": {
- "type": "string"
- },
- "ok": {
- "description": "True when a result was computed.",
- "type": "boolean"
- },
- "result": {
- "description": "The computed figures. Absent on a refusal.",
- "properties": {
- "activeAntardasha": {
- "description": "The antardasha containing asOf. Null only when asOf sits exactly on the cycle end.",
- "type": "object"
- },
- "activeMahadasha": {
- "properties": {
- "antardashas": {
- "description": "The nine sub-periods of the active mahadasha, same shape as a mahadasha plus mahaLord. Each is the mahadasha's length times that sub-lord's share of 120, so the nine sum exactly to the period containing them.",
- "type": "array"
- }
- },
- "type": "object"
- },
- "asOf": {
- "description": "The date the active period was selected for. NEVER the wall clock: it is the asof parameter, defaulting to the birth date, so the permalink returns the same answer to anyone who opens it.",
- "type": "string"
- },
- "asOfDefaultedToBirth": {
- "description": "true when asof was not sent. Send today's date to ask which period is running now.",
- "type": "boolean"
- },
- "ayanamsa": {
- "properties": {
- "degrees": {
- "description": "The ayanamsa at the birth instant, in degrees.",
- "type": "number"
- },
- "name": {
- "description": "The sidereal frame the Moon was read in: Lahiri (Chitrapaksha). A dasha table computed on a different ayanamsa is a different table.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "balanceAtBirth": {
- "properties": {
- "lord": {
- "description": "The lord of the period already running at birth.",
- "type": "string"
- },
- "remainingText": {
- "description": "The balance in years, months and days — the figure every printed dasha table leads with and the one a reader checks first. Months and days here are twelfths and 365.25ths of a Vimshottari year, not calendar units.",
- "type": "string"
- },
- "remainingYears": {
- "description": "The same balance as a decimal count of Vimshottari years.",
- "type": "number"
- }
- },
- "type": "object"
- },
- "conventionNote": {
- "description": "WHY ANOTHER PROGRAM'S TABLE MAY DIFFER, named so the difference can be accounted for rather than argued about. One convention decides it now that the year length agrees with the published implementations: the exact Lahiri variant. A sub-arcminute difference in the Moon becomes days once multiplied through a mahadasha. Measured against Drik Panchang for one birth, every boundary here falls 1.70 days earlier — the same 1.70 at the first and the ninth, because no second term survives. Quote this rather than asserting either table is correct; the two best-known published sources differ from each other by 1.04 days on that same birth.",
- "type": "string"
- },
- "cycleEndsUTC": {
- "description": "When the 120-year cycle from this birth closes. An asof beyond it is refused rather than clamped to the last period.",
- "type": "string"
- },
- "mahadashas": {
- "items": {
- "properties": {
- "active": {
- "description": "Whether the asOf instant falls inside this period. Exactly one row is true.",
- "type": "boolean"
- },
- "durationYears": {
- "description": "Length in Vimshottari years. The first is short by the balance; the other eight are the lord's full period.",
- "type": "number"
- },
- "endLocal": {
- "description": "The same, for the close.",
- "type": "string"
- },
- "endUTC": {
- "description": "The exact instant it closes, which is the instant the next one opens.",
- "type": "string"
- },
- "lord": {
- "description": "One of the nine Vimshottari lords, in the fixed sequence from the first.",
- "type": "string"
- },
- "startLocal": {
- "description": "The same instant on the birthplace's clock, carrying its own date and UTC offset — because a bare clock reading is ambiguous by a full day.",
- "type": "string"
- },
- "startUTC": {
- "description": "The exact instant the period opens, UTC to the second. Not a date: a dasha boundary falls at a clock time and crosses midnight as often as not.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "moon": {
- "properties": {
- "fractionElapsed": {
- "description": "How far through the nakshatra the Moon had travelled, 0 to 1. This is the fraction of the first period already spent before birth.",
- "type": "number"
- },
- "nakshatra": {
- "description": "The nakshatra that longitude falls in, which names the lord of the first mahadasha.",
- "type": "string"
- },
- "pada": {
- "description": "The quarter of the nakshatra, 1 to 4.",
- "type": "number"
- },
- "siderealLongitude": {
- "description": "The Moon's sidereal longitude at birth. The single number the whole timeline hangs off.",
- "type": "number"
- }
- },
- "type": "object"
- },
- "origin": {
- "properties": {
- "historicNote": {
- "description": "A sentence when a historic zone reassignment was applied, null when none was. It is the difference between a right and a wrong balance.",
- "type": "object"
- },
- "offsetLabel": {
- "description": "The birthplace's UTC offset on the birth date, written out.",
- "type": "string"
- },
- "utcInstant": {
- "description": "The birth instant in UTC. Every date in the timeline is measured from it.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "yearLengthDays": {
- "description": "The length of a Vimshottari year in days. The classical text gives the periods and the order and never states one, so this is a CONVENTION: it is the true sidereal year, which is what Drik Panchang requests from its own API and what Jagannatha Hora defaults to. Software stepping a different year — the Julian 365.25, for instance — disagrees by an amount that grows across the cycle, about 0.76 days by the far end for that one.",
- "type": "number"
- }
- },
- "type": "object"
- },
- "summary": {
- "description": "The answer in one sentence.",
- "type": "string"
- },
- "tool": {
- "description": "The calculator that answered.",
- "type": "string"
- },
- "toolName": {
- "type": "string"
- }
- },
- "required": [
- "ok",
- "tool",
- "attribution",
- "citation"
- ],
- "type": "object"
-}New value: +null