@roxyapi/ui-vue 0.27.4 → 0.27.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/components/angel-number-card.js +1 -1
  2. package/dist/components/angel-number-card.js.map +1 -1
  3. package/dist/components/angel-number-lookup.js +1 -1
  4. package/dist/components/angel-number-lookup.js.map +1 -1
  5. package/dist/components/arudha-padas.js +1 -1
  6. package/dist/components/arudha-padas.js.map +1 -1
  7. package/dist/components/ashtakavarga-grid.js +1 -1
  8. package/dist/components/ashtakavarga-grid.js.map +1 -1
  9. package/dist/components/aspects-table.js +1 -1
  10. package/dist/components/aspects-table.js.map +1 -1
  11. package/dist/components/astrocartography-map.js +1 -1
  12. package/dist/components/astrocartography-map.js.map +1 -1
  13. package/dist/components/bhav-chalit-table.js +1 -1
  14. package/dist/components/bhav-chalit-table.js.map +1 -1
  15. package/dist/components/bhava-bala-table.js +1 -1
  16. package/dist/components/bhava-bala-table.js.map +1 -1
  17. package/dist/components/biorhythm-chart.js +1 -1
  18. package/dist/components/biorhythm-chart.js.map +1 -1
  19. package/dist/components/bodygraph.js +1 -1
  20. package/dist/components/bodygraph.js.map +1 -1
  21. package/dist/components/chara-karakas.js +1 -1
  22. package/dist/components/chara-karakas.js.map +1 -1
  23. package/dist/components/choghadiya-grid.js +1 -1
  24. package/dist/components/choghadiya-grid.js.map +1 -1
  25. package/dist/components/compatibility-card.js +1 -1
  26. package/dist/components/compatibility-card.js.map +1 -1
  27. package/dist/components/crystal-card.js +1 -1
  28. package/dist/components/crystal-card.js.map +1 -1
  29. package/dist/components/crystal-grid.js +1 -1
  30. package/dist/components/crystal-grid.js.map +1 -1
  31. package/dist/components/dasha-timeline.js +1 -1
  32. package/dist/components/dasha-timeline.js.map +1 -1
  33. package/dist/components/data.js +1 -1
  34. package/dist/components/data.js.map +1 -1
  35. package/dist/components/divisional-chart.js +1 -1
  36. package/dist/components/divisional-chart.js.map +1 -1
  37. package/dist/components/dosha-card.js +1 -1
  38. package/dist/components/dosha-card.js.map +1 -1
  39. package/dist/components/dream-card.js +1 -1
  40. package/dist/components/dream-card.js.map +1 -1
  41. package/dist/components/dream-search.js +1 -1
  42. package/dist/components/dream-search.js.map +1 -1
  43. package/dist/components/endpoint-form.js +1 -1
  44. package/dist/components/endpoint-form.js.map +1 -1
  45. package/dist/components/ephemeris-table.js +1 -1
  46. package/dist/components/ephemeris-table.js.map +1 -1
  47. package/dist/components/fixed-stars.js +1 -1
  48. package/dist/components/fixed-stars.js.map +1 -1
  49. package/dist/components/forecast-digest.js +1 -1
  50. package/dist/components/forecast-digest.js.map +1 -1
  51. package/dist/components/forecast-timeline.js +1 -1
  52. package/dist/components/forecast-timeline.js.map +1 -1
  53. package/dist/components/gochara-table.js +1 -1
  54. package/dist/components/gochara-table.js.map +1 -1
  55. package/dist/components/guna-milan.js +1 -1
  56. package/dist/components/guna-milan.js.map +1 -1
  57. package/dist/components/hd-connection.js +1 -1
  58. package/dist/components/hd-connection.js.map +1 -1
  59. package/dist/components/hd-penta.js +1 -1
  60. package/dist/components/hd-penta.js.map +1 -1
  61. package/dist/components/hd-type-card.js +1 -1
  62. package/dist/components/hd-type-card.js.map +1 -1
  63. package/dist/components/hd-variables.js +1 -1
  64. package/dist/components/hd-variables.js.map +1 -1
  65. package/dist/components/heliacal-table.js +1 -1
  66. package/dist/components/heliacal-table.js.map +1 -1
  67. package/dist/components/hexagram.js +1 -1
  68. package/dist/components/hexagram.js.map +1 -1
  69. package/dist/components/hora-table.js +1 -1
  70. package/dist/components/hora-table.js.map +1 -1
  71. package/dist/components/horoscope-card.js +1 -1
  72. package/dist/components/horoscope-card.js.map +1 -1
  73. package/dist/components/kp-chart.js +1 -1
  74. package/dist/components/kp-chart.js.map +1 -1
  75. package/dist/components/kp-planets-table.js +1 -1
  76. package/dist/components/kp-planets-table.js.map +1 -1
  77. package/dist/components/kp-ruling-planets.js +1 -1
  78. package/dist/components/kp-ruling-planets.js.map +1 -1
  79. package/dist/components/local-space-compass.js +1 -1
  80. package/dist/components/local-space-compass.js.map +1 -1
  81. package/dist/components/location-search.js +1 -1
  82. package/dist/components/location-search.js.map +1 -1
  83. package/dist/components/moon-phase.js +1 -1
  84. package/dist/components/moon-phase.js.map +1 -1
  85. package/dist/components/nakshatra-card.js +1 -1
  86. package/dist/components/nakshatra-card.js.map +1 -1
  87. package/dist/components/natal-chart.js +1 -1
  88. package/dist/components/natal-chart.js.map +1 -1
  89. package/dist/components/numerology-card.js +1 -1
  90. package/dist/components/numerology-card.js.map +1 -1
  91. package/dist/components/panchang-table.js +1 -1
  92. package/dist/components/panchang-table.js.map +1 -1
  93. package/dist/components/positions-table.js +1 -1
  94. package/dist/components/positions-table.js.map +1 -1
  95. package/dist/components/profection-card.js +1 -1
  96. package/dist/components/profection-card.js.map +1 -1
  97. package/dist/components/reference-card.js +1 -1
  98. package/dist/components/reference-card.js.map +1 -1
  99. package/dist/components/relocation-wheel.js +1 -1
  100. package/dist/components/relocation-wheel.js.map +1 -1
  101. package/dist/components/shadbala-table.js +1 -1
  102. package/dist/components/shadbala-table.js.map +1 -1
  103. package/dist/components/synastry-chart.js +1 -1
  104. package/dist/components/synastry-chart.js.map +1 -1
  105. package/dist/components/tarot-card.js +1 -1
  106. package/dist/components/tarot-card.js.map +1 -1
  107. package/dist/components/tarot-catalog.js +1 -1
  108. package/dist/components/tarot-catalog.js.map +1 -1
  109. package/dist/components/tarot-spread.js +1 -1
  110. package/dist/components/tarot-spread.js.map +1 -1
  111. package/dist/components/transit-wheel.js +1 -1
  112. package/dist/components/transit-wheel.js.map +1 -1
  113. package/dist/components/transits-table.js +1 -1
  114. package/dist/components/transits-table.js.map +1 -1
  115. package/dist/components/upagraha-table.js +1 -1
  116. package/dist/components/upagraha-table.js.map +1 -1
  117. package/dist/components/vedic-aspects.js +1 -1
  118. package/dist/components/vedic-aspects.js.map +1 -1
  119. package/dist/components/vedic-kundli.js +1 -1
  120. package/dist/components/vedic-kundli.js.map +1 -1
  121. package/dist/components/vedic-planets-table.js +1 -1
  122. package/dist/components/vedic-planets-table.js.map +1 -1
  123. package/dist/components/western-planets-table.js +1 -1
  124. package/dist/components/western-planets-table.js.map +1 -1
  125. package/dist/components/yoga-list.js +1 -1
  126. package/dist/components/yoga-list.js.map +1 -1
  127. package/dist/index.cjs +1 -1
  128. package/dist/index.cjs.map +1 -1
  129. package/dist/index.js +1 -1
  130. package/dist/index.js.map +1 -1
  131. package/dist/load-ui.d.ts +1 -1
  132. package/dist/load-ui.js +1 -1
  133. package/dist/load-ui.js.map +1 -1
  134. package/dist/types/index.d.ts +1 -1
  135. package/dist/types/index.d.ts.map +1 -1
  136. package/dist/types/types.gen.d.ts +721 -3
  137. package/dist/types/types.gen.d.ts.map +1 -1
  138. package/package.json +1 -1
@@ -4214,7 +4214,7 @@ export type YogaDetail = {
4214
4214
  };
4215
4215
  export type YogaDetectResponse = {
4216
4216
  /**
4217
- * Array of 44 detected yogas, always the full set so a caller can render absent verdicts too. Every entry carries a `present` boolean and a `quality` (Positive, Negative, or Both = auspicious, inauspicious, or context-dependent); filter on present === true for active yogas. Evidence text names the rule that triggered or failed, or the precedence norm that outranked it.
4217
+ * Array of 48 detected yogas, always the full set so a caller can render absent verdicts too. Every entry carries a `present` boolean and a `quality` (Positive, Negative, or Both = auspicious, inauspicious, or context-dependent); filter on present === true for active yogas. Evidence text names the rule that triggered or failed, or the precedence norm that outranked it.
4218
4218
  */
4219
4219
  yogas: Array<{
4220
4220
  /**
@@ -4268,7 +4268,7 @@ export type YogaDetectResponse = {
4268
4268
  ayanamsaDegrees: number;
4269
4269
  };
4270
4270
  /**
4271
- * Count of yogas where present === true in this chart. Range 0-44, though real charts sit in the low single digits: the Nabhasa families are mutually constrained by the precedence norms, and most shape yogas are rare.
4271
+ * Count of yogas where present === true in this chart. Range 0-48, though real charts sit in the low single digits: the Nabhasa families are mutually constrained by the precedence norms, and most shape yogas are rare.
4272
4272
  */
4273
4273
  total: number;
4274
4274
  /**
@@ -18213,6 +18213,724 @@ export type GetPranaDashasResponses = {
18213
18213
  };
18214
18214
  };
18215
18215
  export type GetPranaDashasResponse = GetPranaDashasResponses[keyof GetPranaDashasResponses];
18216
+ export type GetVedicDailyReadingData = {
18217
+ body?: {
18218
+ /**
18219
+ * Birth date in YYYY-MM-DD format. Fixes the Janma Rashi and Janma Nakshatra every part of this reading is counted from, and the natal Ashtakavarga the bindu gate reads.
18220
+ */
18221
+ birthDate: string;
18222
+ /**
18223
+ * Birth time in HH:MM:SS format (24-hour). The Moon moves about half a degree an hour, so an error here moves the Janma Rashi and Janma Nakshatra and therefore every gochara house count, the tarabala and the chandrabala in this response.
18224
+ */
18225
+ birthTime: string;
18226
+ /**
18227
+ * Birth location latitude in decimal degrees. Sets the natal house cusps behind the Ashtakavarga scorecard and the KP significators, and the sunrise that opens the panchanga day.
18228
+ */
18229
+ latitude: number;
18230
+ /**
18231
+ * Birth location longitude in decimal degrees. Affects local sidereal time for the natal cusps and the sunrise the reading is composed at.
18232
+ */
18233
+ longitude: number;
18234
+ /**
18235
+ * Timezone: IANA name (e.g. "Asia/Kolkata", "America/New_York") OR decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). IANA strings are resolved to the DST-correct offset for the date being read. Interprets the birth time and the civil date below. Defaults to 5.5.
18236
+ */
18237
+ timezone?: number | string;
18238
+ /**
18239
+ * Civil date to read, in YYYY-MM-DD format. Defaults to today (UTC). The panchanga day it names runs from sunrise at the birth coordinates to the next sunrise, not from midnight, so a reading for this date covers the night that follows it.
18240
+ */
18241
+ date?: string;
18242
+ /**
18243
+ * Lunar node type for Rahu and Ketu. "mean" uses the smooth mean node, which is the traditional Vedic default and what printed panchangs use. "true" uses the osculating node, which swings up to 1.5 degrees either side of mean and can therefore move a node into a different rashi and change its gochara house. Defaults to "mean".
18244
+ */
18245
+ nodeType?: 'mean' | 'true';
18246
+ };
18247
+ path?: never;
18248
+ query?: {
18249
+ /**
18250
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
18251
+ */
18252
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
18253
+ /**
18254
+ * Which signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general".
18255
+ */
18256
+ focus?: 'general' | 'finance';
18257
+ };
18258
+ url: '/vedic-astrology/daily';
18259
+ };
18260
+ export type GetVedicDailyReadingErrors = {
18261
+ /**
18262
+ * Validation error. `issues[]` lists every failed field.
18263
+ */
18264
+ 400: {
18265
+ /**
18266
+ * First issue summary.
18267
+ */
18268
+ error: string;
18269
+ code: 'validation_error';
18270
+ /**
18271
+ * Every validation failure. Use this to rebuild a valid request.
18272
+ */
18273
+ issues: Array<{
18274
+ /**
18275
+ * Dot-separated field path, or "(root)" for top-level.
18276
+ */
18277
+ path: string;
18278
+ message: string;
18279
+ /**
18280
+ * Zod issue code (invalid_type, too_small, too_big, invalid_string, ...).
18281
+ */
18282
+ code?: string;
18283
+ /**
18284
+ * Expected type for invalid_type.
18285
+ */
18286
+ expected?: string;
18287
+ /**
18288
+ * Minimum bound for too_small issues.
18289
+ */
18290
+ minimum?: number | string;
18291
+ /**
18292
+ * Maximum bound for too_big issues.
18293
+ */
18294
+ maximum?: number | string;
18295
+ inclusive?: boolean;
18296
+ /**
18297
+ * Format name for string issues (regex, email, url, uuid).
18298
+ */
18299
+ format?: string;
18300
+ /**
18301
+ * Regex pattern when format is regex.
18302
+ */
18303
+ pattern?: string;
18304
+ }>;
18305
+ };
18306
+ /**
18307
+ * Invalid or missing API key
18308
+ */
18309
+ 401: {
18310
+ /**
18311
+ * Human-readable error message. May change wording.
18312
+ */
18313
+ error: string;
18314
+ /**
18315
+ * Machine-readable error code. Stable identifier.
18316
+ */
18317
+ code: string;
18318
+ };
18319
+ /**
18320
+ * Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header.
18321
+ */
18322
+ 405: {
18323
+ error: string;
18324
+ code: 'method_not_allowed';
18325
+ /**
18326
+ * Allowed HTTP methods for this path. Mirrors the Allow response header.
18327
+ */
18328
+ allow: Array<string>;
18329
+ /**
18330
+ * Link to the product page for this domain.
18331
+ */
18332
+ docs?: string;
18333
+ };
18334
+ /**
18335
+ * Monthly rate limit exceeded
18336
+ */
18337
+ 429: {
18338
+ /**
18339
+ * Human-readable error message. May change wording.
18340
+ */
18341
+ error: string;
18342
+ /**
18343
+ * Machine-readable error code. Stable identifier.
18344
+ */
18345
+ code: string;
18346
+ };
18347
+ /**
18348
+ * Internal server error
18349
+ */
18350
+ 500: {
18351
+ /**
18352
+ * Human-readable error message. May change wording.
18353
+ */
18354
+ error: string;
18355
+ /**
18356
+ * Machine-readable error code. Stable identifier.
18357
+ */
18358
+ code: string;
18359
+ };
18360
+ };
18361
+ export type GetVedicDailyReadingError = GetVedicDailyReadingErrors[keyof GetVedicDailyReadingErrors];
18362
+ export type GetVedicDailyReadingResponses = {
18363
+ /**
18364
+ * Daily reading composed successfully
18365
+ */
18366
+ 200: {
18367
+ /**
18368
+ * Every sidereal frame behind this reading, so a cached or forwarded payload is self describing and no number sits under a label it did not come from. TWO ayanamsas are in play by design: positions are Lahiri, and the Placidus cusps plus the KP significators are KP-Newcomb, which is the frame KP owns and the split a practitioner actually works in. The two differ by about 0.09 degrees, which is under a third of a KP sub-lord span and enough to move a placement near a boundary, so the reading declares which produced what rather than leaving a caller to guess. THREE entries for two ayanamsas, because Lahiri is read at two instants: the birth moment and the sunrise of the day being read, roughly half a degree apart on a chart forty years old, six times the gap between the two ayanamsas themselves. There is no ayanamsa request field on this route and there will not be one, since a single selector cannot honour two frames and accepting it would promise something the composition cannot deliver.
18369
+ */
18370
+ frames: {
18371
+ /**
18372
+ * Lahiri at the birth instant. Produces the natal Moon this whole reading is counted from, the Vimshottari balance, and the natal graha rows of the Ashtakavarga scorecard the bindu gate reads.
18373
+ */
18374
+ natal: {
18375
+ /**
18376
+ * Sidereal frame this part of the reading was cast in. Always "lahiri" here: it is not a caller choice, because the composition runs two frames at once and a single request field could only ever name one of them.
18377
+ */
18378
+ ayanamsa: string;
18379
+ /**
18380
+ * Degrees actually subtracted from every tropical longitude this frame produced. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
18381
+ */
18382
+ ayanamsaDegrees: number;
18383
+ /**
18384
+ * ISO instant the ayanamsa was read at. Part of the value, not metadata: an ayanamsa moves about 50.3 arcseconds a year, so the same frame read at a birth in 1984 and at a transit in 2026 differs by more than half a degree.
18385
+ */
18386
+ at: string;
18387
+ /**
18388
+ * Response sections this frame is a determinant of, as paths into this payload. One of subject, grahas, panchanga, tara, chandrabala, dasha, areas.finance. A section appears under EVERY frame that feeds it, which is why grahas is listed three times: the transiting longitudes and the natal Moon they are counted from are both Lahiri read at different instants, while the Ashtakavarga Lagna row behind binduCount and kaksha is KP-Newcomb. Exactly two sections belong to one frame alone, subject to the natal frame and panchanga to the transit frame.
18389
+ */
18390
+ governs: Array<'subject' | 'grahas' | 'panchanga' | 'tara' | 'chandrabala' | 'dasha' | 'areas.finance'>;
18391
+ };
18392
+ /**
18393
+ * Lahiri at sunrise on the day being read. Produces every transiting longitude and every panchanga limb. Inside one day precession moves it 0.14 arcseconds, so this one value speaks for every limb resolved between the two sunrises.
18394
+ */
18395
+ transit: {
18396
+ /**
18397
+ * Sidereal frame this part of the reading was cast in. Always "lahiri" here: it is not a caller choice, because the composition runs two frames at once and a single request field could only ever name one of them.
18398
+ */
18399
+ ayanamsa: string;
18400
+ /**
18401
+ * Degrees actually subtracted from every tropical longitude this frame produced. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
18402
+ */
18403
+ ayanamsaDegrees: number;
18404
+ /**
18405
+ * ISO instant the ayanamsa was read at. Part of the value, not metadata: an ayanamsa moves about 50.3 arcseconds a year, so the same frame read at a birth in 1984 and at a transit in 2026 differs by more than half a degree.
18406
+ */
18407
+ at: string;
18408
+ /**
18409
+ * Response sections this frame is a determinant of, as paths into this payload. One of subject, grahas, panchanga, tara, chandrabala, dasha, areas.finance. A section appears under EVERY frame that feeds it, which is why grahas is listed three times: the transiting longitudes and the natal Moon they are counted from are both Lahiri read at different instants, while the Ashtakavarga Lagna row behind binduCount and kaksha is KP-Newcomb. Exactly two sections belong to one frame alone, subject to the natal frame and panchanga to the transit frame.
18410
+ */
18411
+ governs: Array<'subject' | 'grahas' | 'panchanga' | 'tara' | 'chandrabala' | 'dasha' | 'areas.finance'>;
18412
+ };
18413
+ /**
18414
+ * KP-Newcomb, read at UTC midnight of the birth date. Produces the Placidus cusps behind the Ashtakavarga Lagna row and the KP significators behind the finance area, exactly as every KP route on this API computes them.
18415
+ */
18416
+ kp: {
18417
+ /**
18418
+ * Sidereal frame this part of the reading was cast in. Always "kp-newcomb" here: it is not a caller choice, because the composition runs two frames at once and a single request field could only ever name one of them.
18419
+ */
18420
+ ayanamsa: string;
18421
+ /**
18422
+ * Degrees actually subtracted from every tropical longitude this frame produced. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
18423
+ */
18424
+ ayanamsaDegrees: number;
18425
+ /**
18426
+ * ISO instant the ayanamsa was read at. Part of the value, not metadata: an ayanamsa moves about 50.3 arcseconds a year, so the same frame read at a birth in 1984 and at a transit in 2026 differs by more than half a degree.
18427
+ */
18428
+ at: string;
18429
+ /**
18430
+ * Response sections this frame is a determinant of, as paths into this payload. One of subject, grahas, panchanga, tara, chandrabala, dasha, areas.finance. A section appears under EVERY frame that feeds it, which is why grahas is listed three times: the transiting longitudes and the natal Moon they are counted from are both Lahiri read at different instants, while the Ashtakavarga Lagna row behind binduCount and kaksha is KP-Newcomb. Exactly two sections belong to one frame alone, subject to the natal frame and panchanga to the transit frame.
18431
+ */
18432
+ governs: Array<'subject' | 'grahas' | 'panchanga' | 'tara' | 'chandrabala' | 'dasha' | 'areas.finance'>;
18433
+ };
18434
+ };
18435
+ /**
18436
+ * Civil date this reading covers, echoing the request field or the UTC date it defaulted to.
18437
+ */
18438
+ date: string;
18439
+ /**
18440
+ * ISO instant the panchanga day begins, which is SUNRISE at the birth coordinates and not midnight. Every limb below is resolved at this instant. Where the Sun does not rise, local noon is used instead and the substitution is named in degraded rather than applied silently.
18441
+ */
18442
+ dayStart: string;
18443
+ /**
18444
+ * ISO instant the panchanga day ends, which is the next sunrise.
18445
+ */
18446
+ dayEnd: string;
18447
+ /**
18448
+ * The two natal reference points this whole reading is counted from, plus the longitude they come from.
18449
+ */
18450
+ subject: {
18451
+ /**
18452
+ * Natal Moon rashi, the reference point every gochara house count in this response is taken from. Always English.
18453
+ */
18454
+ janmaRashi: string;
18455
+ /**
18456
+ * Natal Moon nakshatra, the reference point the tarabala is counted from. Canonical Sanskrit.
18457
+ */
18458
+ janmaNakshatra: string;
18459
+ /**
18460
+ * Janma Nakshatra number 1 to 27, counted from Ashwini.
18461
+ */
18462
+ janmaNakshatraNumber: number;
18463
+ /**
18464
+ * Sidereal longitude of the natal Moon in degrees. The single value both reference points are derived from, so any disagreement with a reference chart can be traced to its source rather than to a verdict.
18465
+ */
18466
+ moonLongitude: number;
18467
+ };
18468
+ /**
18469
+ * The four panchanga limbs, each resolved at sunrise and each carrying the instant it gives way, so a client can label the whole day rather than asserting one value for it.
18470
+ */
18471
+ panchanga: {
18472
+ /**
18473
+ * Weekday of the panchanga day. The Hindu vara runs sunrise to sunrise, so it can differ from the civil weekday of the same date before dawn. Always English.
18474
+ */
18475
+ vara: string;
18476
+ /**
18477
+ * The same weekday under its Sanskrit name.
18478
+ */
18479
+ varaSanskrit: string;
18480
+ /**
18481
+ * Lunar fortnight at sunrise: Shukla for the waxing half, Krishna for the waning half.
18482
+ */
18483
+ paksha: string;
18484
+ /**
18485
+ * Tithi (lunar day) running at sunrise, with the instant it ends. The tithi is the 12-degree step of the Moon away from the Sun, so its length varies through the month.
18486
+ */
18487
+ tithi: {
18488
+ /**
18489
+ * tithi number in its own cycle, resolved at sunrise.
18490
+ */
18491
+ number: number;
18492
+ /**
18493
+ * Name of the tithi running at sunrise. Canonical Sanskrit, so it stays safe to compare against in code.
18494
+ */
18495
+ name: string;
18496
+ /**
18497
+ * ISO instant this tithi ends. Read from the same transition search POST /panchang/detailed publishes, never recomputed here, so the two endpoints cannot disagree about when the event happens.
18498
+ */
18499
+ validTo: string;
18500
+ /**
18501
+ * The tithi that follows, so the rest of the day can be labelled without a second request.
18502
+ */
18503
+ next: string;
18504
+ /**
18505
+ * How long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
18506
+ */
18507
+ timescale: 'hours' | 'days' | 'months' | 'years';
18508
+ };
18509
+ /**
18510
+ * Nakshatra the Moon occupies at sunrise, with the instant it ends. This is the sky-wide limb; for what it means to THIS native, read the tara array.
18511
+ */
18512
+ nakshatra: {
18513
+ /**
18514
+ * nakshatra number in its own cycle, resolved at sunrise.
18515
+ */
18516
+ number: number;
18517
+ /**
18518
+ * Name of the nakshatra running at sunrise. Canonical Sanskrit, so it stays safe to compare against in code.
18519
+ */
18520
+ name: string;
18521
+ /**
18522
+ * ISO instant this nakshatra ends. Read from the same transition search POST /panchang/detailed publishes, never recomputed here, so the two endpoints cannot disagree about when the event happens.
18523
+ */
18524
+ validTo: string;
18525
+ /**
18526
+ * The nakshatra that follows, so the rest of the day can be labelled without a second request.
18527
+ */
18528
+ next: string;
18529
+ /**
18530
+ * How long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
18531
+ */
18532
+ timescale: 'hours' | 'days' | 'months' | 'years';
18533
+ };
18534
+ /**
18535
+ * Nitya yoga running at sunrise, with the instant it ends. The 27 yogas step through the combined longitude of the Sun and the Moon.
18536
+ */
18537
+ yoga: {
18538
+ /**
18539
+ * yoga number in its own cycle, resolved at sunrise.
18540
+ */
18541
+ number: number;
18542
+ /**
18543
+ * Name of the yoga running at sunrise. Canonical Sanskrit, so it stays safe to compare against in code.
18544
+ */
18545
+ name: string;
18546
+ /**
18547
+ * ISO instant this yoga ends. Read from the same transition search POST /panchang/detailed publishes, never recomputed here, so the two endpoints cannot disagree about when the event happens.
18548
+ */
18549
+ validTo: string;
18550
+ /**
18551
+ * The yoga that follows, so the rest of the day can be labelled without a second request.
18552
+ */
18553
+ next: string;
18554
+ /**
18555
+ * How long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
18556
+ */
18557
+ timescale: 'hours' | 'days' | 'months' | 'years';
18558
+ };
18559
+ /**
18560
+ * Karana running at sunrise, with the instant it ends. A karana is half a tithi, which is why it is the fastest of the four limbs.
18561
+ */
18562
+ karana: {
18563
+ /**
18564
+ * karana number in its own cycle, resolved at sunrise.
18565
+ */
18566
+ number: number;
18567
+ /**
18568
+ * Name of the karana running at sunrise. Canonical Sanskrit, so it stays safe to compare against in code.
18569
+ */
18570
+ name: string;
18571
+ /**
18572
+ * ISO instant this karana ends. Read from the same transition search POST /panchang/detailed publishes, never recomputed here, so the two endpoints cannot disagree about when the event happens.
18573
+ */
18574
+ validTo: string;
18575
+ /**
18576
+ * The karana that follows, so the rest of the day can be labelled without a second request.
18577
+ */
18578
+ next: string;
18579
+ /**
18580
+ * How long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
18581
+ */
18582
+ timescale: 'hours' | 'days' | 'months' | 'years';
18583
+ };
18584
+ };
18585
+ /**
18586
+ * All nine transiting grahas, each with its four gate results and the ONE state they produced. The gates run in the order the sources give them: house from the natal Moon, then vedha, then the bindu gate, then the nullifiers of Phaladeepika XXVI.30 to XXVI.32. Obstruction is terminal, so a blocked transit is never rescued by the gates that follow it.
18587
+ */
18588
+ grahas: Array<{
18589
+ /**
18590
+ * Graha name, Sun through Ketu. Always English, whatever the lang parameter says, so it stays safe to compare against in code.
18591
+ */
18592
+ graha: string;
18593
+ /**
18594
+ * Rashi this graha is transiting on the day being read. Always English.
18595
+ */
18596
+ sign: string;
18597
+ /**
18598
+ * Sidereal longitude of the transiting graha in degrees, 0 to 360, Lahiri frame.
18599
+ */
18600
+ longitude: number;
18601
+ /**
18602
+ * House this graha transits counted whole-sign and inclusively from the natal Moon rashi (Janma Rashi), so the Moon rashi itself is 1. This is the reference classical Gochara is reckoned in: Phaladeepika XXVI.1 opens the transit chapter by saying that of all the Lagnas only the Moon Lagna matters for transit results. A reading counted from the Lagna instead answers a different question and every verdict below would be wrong.
18603
+ */
18604
+ houseFromMoon: number;
18605
+ /**
18606
+ * How long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
18607
+ */
18608
+ timescale: 'hours' | 'days' | 'months' | 'years';
18609
+ /**
18610
+ * Gate 1. Whether houseFromMoon is on this graha classical favourable list (Phaladeepika XXVI.2). The baseline verdict, before vedha, bindus or the nullifiers have had their say.
18611
+ */
18612
+ favourable: boolean;
18613
+ /**
18614
+ * Gate 1 evidence: the whole favourable list for this graha, so the baseline verdict can be checked in place without a second request or a table lookup.
18615
+ */
18616
+ favourableHouses: Array<number>;
18617
+ /**
18618
+ * Gate 2. The house whose occupation by another graha cancels this transit (Phaladeepika XXVI.3-8). Null when the transit is not favourable to begin with, since there is nothing for an obstruction to cancel.
18619
+ */
18620
+ vedhaHouse: number | null;
18621
+ /**
18622
+ * Gate 2. Grahas actually standing in vedhaHouse, with the mutual exemptions already applied. Empty when nothing obstructs. A non-empty list makes the state "obstructed", which is a THIRD outcome rather than a smaller number: the texts cancel the promised good outright rather than discounting it.
18623
+ */
18624
+ obstructedBy: Array<string>;
18625
+ /**
18626
+ * Gate 2. Grahas that cannot obstruct this one however they transit, from the two mutual exemptions the texts name: the Sun and Saturn do not obstruct each other, and neither do the Moon and Mercury.
18627
+ */
18628
+ vedhaExempt: Array<string>;
18629
+ /**
18630
+ * Gate 3. Bindus this graha holds in the whole sign it is transiting, 0 to 8, or null for Rahu and Ketu, which have no Bhinnashtakavarga and therefore SKIP this gate entirely rather than scoring zero. The gate reads the number two ways: a favourable house carrying fewer than 4 bindus under delivers, and an unfavourable house carrying a strict majority of the eight contributors, 5 or more, is turned good by Phaladeepika XXVI.41. Exactly 4 fires neither rule, which is the literal reading of both phrasings rather than a rounding choice. WHOSE READING THE NUMBER IS, stated because generalising it is ours: B.V. Raman prints 4 once and prints it about the MOON, then generalises the PRINCIPLE to every graha in the next sentence without repeating any number, and Phaladeepika XXVI.41 is general across grahas and also states no number. Applying 4 to all nine bodies is RoxyAPI reading the general rule through the one worked example the author gave it, and it is not a universally stated classical threshold.
18631
+ */
18632
+ binduCount: number | null;
18633
+ /**
18634
+ * Gochara Kaksha: the ashtakavarga-qualified reading of this transit. The sign says where a graha is, this says whether the exact stretch it currently occupies is one its own Bhinnashtakavarga supports, which is the classical way of refining a transit verdict from sign-level to under four degrees.
18635
+ */
18636
+ kaksha: {
18637
+ /**
18638
+ * Kaksha number 1-8 within the current sign. Each sign divides into eight kakshas of 3 degrees 45 minutes, crossed in order, so this is how far through the sign the graha has travelled.
18639
+ */
18640
+ number: number;
18641
+ /**
18642
+ * Graha ruling this kaksha. The eight lords run Saturn, Jupiter, Mars, Sun, Venus, Mercury, Moon, Lagna from the start of every sign, ordered by how long each takes to cross a sign.
18643
+ */
18644
+ lord: string;
18645
+ /**
18646
+ * Degree within the sign where this kaksha begins (0, 3.75, 7.5 and so on).
18647
+ */
18648
+ startDegree: number;
18649
+ /**
18650
+ * Degree within the sign where this kaksha ends.
18651
+ */
18652
+ endDegree: number;
18653
+ /**
18654
+ * Whether this kaksha lord gave the transiting graha a bindu in the sign being transited, which is the Gochara Kaksha verdict: true reads as a favourable stretch of the transit, false as an unfavourable one. Null means the question does not apply rather than that the answer is no, because Rahu and Ketu have no Bhinnashtakavarga to read. Never render null as unfavourable.
18655
+ */
18656
+ bindu: boolean | null;
18657
+ /**
18658
+ * Bindus the transiting graha holds in this whole sign, 0-8, or null for Rahu and Ketu. Context for the verdict, since the same kaksha reads differently in a sign worth 7 than in one worth 1.
18659
+ */
18660
+ binduCount: number | null;
18661
+ };
18662
+ /**
18663
+ * Gate 4. Dignity of the graha in the sign it is transiting, or null for Rahu and Ketu which have none. Feeds the Phaladeepika XXVI.31 shield ("exalted" or "own" does no harm in an untoward bhava) and the XXVI.32 weakness ("debilitated" or "enemy" voids a good transit). One of exalted, own, debilitated, enemy, neutral.
18664
+ */
18665
+ dignity: 'exalted' | 'own' | 'debilitated' | 'enemy' | 'neutral' | null;
18666
+ /**
18667
+ * Gate 4. Whether the graha is combust at the transit moment, or null for the Sun and the two nodes where the question does not arise at all. Combustion voids a good transit under Phaladeepika XXVI.32 and aggravates a bad one.
18668
+ */
18669
+ combust: boolean | null;
18670
+ /**
18671
+ * Gate 4. Transiting natural benefics casting graha drishti on this graha. Under Phaladeepika XXVI.30 a benefic sight on a BAD result is what voids it. Read as drishti from the other TRANSITING grahas, which is a school choice this endpoint makes and states: the sloka sits between the vedha rules and the rules about the transiting graha own condition.
18672
+ */
18673
+ aspectedByBenefic: Array<string>;
18674
+ /**
18675
+ * Gate 4. Transiting natural malefics casting graha drishti on this graha. A malefic sight on a GOOD result voids it under Phaladeepika XXVI.30. Rahu and Ketu never appear here: they cast no drishti in this package, which is its own documented school choice, although they can be aspected.
18676
+ */
18677
+ aspectedByMalefic: Array<string>;
18678
+ /**
18679
+ * Gate 4. Transiting natural enemies of this graha casting graha drishti on it. Phaladeepika XXVI.30 voids the result either way for an enemy sight, whichever direction the baseline verdict pointed.
18680
+ */
18681
+ aspectedByEnemy: Array<string>;
18682
+ /**
18683
+ * The single outcome the four gates produced for this graha, and the only field the score counts. "favourable" is the house list holding with nothing cancelling it, "underdelivered" is a favourable house below the bindu delivery floor, "obstructed" is vedha, "void" is an aspect, a dignity shield or a weakness emptying the result of effect, "aggravated" is the one compounding rule in the chapter, and "unfavourable" is a house that was never on the list. Canonical English machine values: every one is a classical outcome word rather than an invented label, which is why none carries a translated sibling.
18684
+ */
18685
+ state: 'favourable' | 'underdelivered' | 'obstructed' | 'void' | 'aggravated' | 'unfavourable';
18686
+ /**
18687
+ * The rule that decided the state, named so a verdict can be checked against its sloka without leaving the payload.
18688
+ */
18689
+ stateSource: string;
18690
+ }>;
18691
+ /**
18692
+ * Tarabala for THIS native, as an array of windows rather than one value, because the Moon can change nakshatra inside a panchanga day and the reference panchangs print two windows when it does. Three windows happen and are returned when they do. One entry means the tara held all day.
18693
+ */
18694
+ tara: Array<{
18695
+ /**
18696
+ * ISO instant this tarabala window opens.
18697
+ */
18698
+ validFrom: string;
18699
+ /**
18700
+ * ISO instant this tarabala window closes, which is when the Moon changes nakshatra.
18701
+ */
18702
+ validTo: string;
18703
+ /**
18704
+ * How long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
18705
+ */
18706
+ timescale: 'hours' | 'days' | 'months' | 'years';
18707
+ /**
18708
+ * Nakshatra the Moon occupies during this window. Canonical Sanskrit.
18709
+ */
18710
+ moonNakshatra: string;
18711
+ /**
18712
+ * Tara number 1 to 9, counted inclusively from the Janma Nakshatra to the Moon nakshatra and folded by 9.
18713
+ */
18714
+ number: number;
18715
+ /**
18716
+ * Name of the tara this native gets during this window, from the 9-tara cycle Janma through Parama Mitra. A Sanskrit proper noun and a canonical machine value, which is why the favourability is a separate field rather than something a caller has to infer from the word.
18717
+ */
18718
+ name: 'Janma' | 'Sampat' | 'Vipat' | 'Kshema' | 'Pratyari' | 'Sadhaka' | 'Vadha' | 'Mitra' | 'Parama Mitra';
18719
+ /**
18720
+ * Where this tara falls in the three-way classical reading. Taras 2, 4, 6, 8 and 9 are favourable, 3, 5 and 7 are not, and the 1st (Janma) is neither.
18721
+ */
18722
+ quality: 'favourable' | 'unfavourable' | 'neutral';
18723
+ }>;
18724
+ /**
18725
+ * Chandrabala for THIS native, windowed for the same reason as the tarabala: the Moon can change rashi inside the panchanga day. Ashtama Chandra is a separate flag on each window.
18726
+ */
18727
+ chandrabala: Array<{
18728
+ /**
18729
+ * ISO instant this chandrabala window opens.
18730
+ */
18731
+ validFrom: string;
18732
+ /**
18733
+ * ISO instant this chandrabala window closes, which is when the Moon changes rashi.
18734
+ */
18735
+ validTo: string;
18736
+ /**
18737
+ * How long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
18738
+ */
18739
+ timescale: 'hours' | 'days' | 'months' | 'years';
18740
+ /**
18741
+ * Rashi the Moon occupies during this window. Always English.
18742
+ */
18743
+ moonSign: string;
18744
+ /**
18745
+ * House the Moon rashi makes from the Janma Rashi, counted whole-sign and inclusively, so the Janma Rashi itself is 1. This is the number chandrabala is read off.
18746
+ */
18747
+ houseFromMoon: number;
18748
+ /**
18749
+ * Whether the Moon stands in one of the rashis that give this native chandrabala during this window.
18750
+ */
18751
+ favourable: boolean;
18752
+ /**
18753
+ * The Moon in the 8th from the Janma Rashi. Its OWN flag, printed beside chandrabala rather than folded into it, exactly as the reference panchangs print it. Folding it in would let a caller read one boolean and miss the warning the source deliberately separates.
18754
+ */
18755
+ ashtamaChandra: boolean;
18756
+ }>;
18757
+ /**
18758
+ * The running Vimshottari chain at sunrise, outermost first, three levels deep. This is the frame the day is read inside, and it is also what the finance area reads the significators off. Empty for a chart whose cycle cannot be resolved.
18759
+ */
18760
+ dasha: Array<{
18761
+ /**
18762
+ * Which Vimshottari level this period is. Only mahadasha, antardasha, pratyantardasha are carried: the sookshma and prana lords turn over in hours and minutes, so embedding them would advertise a day-long cache lifetime over a value that is already stale. Use POST /dasha/current for those two.
18763
+ */
18764
+ level: 'mahadasha' | 'antardasha' | 'pratyantardasha';
18765
+ /**
18766
+ * Graha ruling this period. Always English.
18767
+ */
18768
+ lord: string;
18769
+ /**
18770
+ * ISO instant this period begins.
18771
+ */
18772
+ startDate: string;
18773
+ /**
18774
+ * ISO instant this period ends.
18775
+ */
18776
+ endDate: string;
18777
+ /**
18778
+ * How long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
18779
+ */
18780
+ timescale: 'hours' | 'days' | 'months' | 'years';
18781
+ }>;
18782
+ /**
18783
+ * Life areas carried as a TYPED closed set rather than an open map, so every generated SDK knows which keys exist. Finance ships alone in this version, because an area is a named classical house group with a citation and not a life category invented for a dropdown. Widening it later adds a key and breaks nothing.
18784
+ */
18785
+ areas: {
18786
+ /**
18787
+ * The finance area: the positive house group 2, 5, 11 netted against the negative group 6, 8, 12, read off the lords of the running dasha, bhukti and antara, because that is the KP rule for when a matter fructifies, plus the natal basis the day is read against. ALWAYS AN OBJECT. Above latitude 66.56 the six netted members are null, because the Placidus cusps behind the significators have no solution there, while natal is still populated because it is a property of the birth chart and needs no cusps; the reading also still carries its gochara, panchanga and dasha and names the omission in degraded. The two house groups are Krishnamurti Paddhati practice, but the NET is a KP practitioner convention rather than a classical operation: the KP sources that carry these groups use them as a promise test and an avoidance test, never as arithmetic. The groups also vary by author, and the 6th house is the live disagreement, since some KP authors place it on the POSITIVE side as service income and salary, the exact opposite of the assignment used here. This is a six house net and it is NOT the focus=finance lens, which re-reads all twelve bhavas in money vocabulary and moves no number. The two are orthogonal and both ship.
18788
+ */
18789
+ finance: {
18790
+ /**
18791
+ * Share of the running lords six-house connections that land on the positive group, 0 to 100, rounded. A COUNT, so positive and negative below reproduce it in one division: round(positive / (positive + negative) * 100). Zero when the running lords reach none of the six houses, which is an ABSENCE of connection rather than a negative verdict. Null above latitude 66.56, where the Placidus cusps the KP significators are read from have no solution: the question does not apply there rather than the answer being no, so never render it as zero or as a weak verdict. The natal block beside it is unaffected and still ships, and degraded names areas.finance.score. The two house groups are Krishnamurti Paddhati practice, but the NET is a KP practitioner convention rather than a classical operation: the KP sources that carry these groups use them as a promise test and an avoidance test, never as arithmetic. The groups also vary by author, and the 6th house is the live disagreement, since some KP authors place it on the POSITIVE side as service income and salary, the exact opposite of the assignment used here. This is a six house net and it is NOT the focus=finance lens, which re-reads all twelve bhavas in money vocabulary and moves no number. The two are orthogonal and both ship.
18792
+ */
18793
+ score: number | null;
18794
+ /**
18795
+ * The band the finance score falls in, on the same ladder as the top-level verdict so the two can never disagree about what a word means: "very-strong" at 75 and above, "strong" at 50 and above, "moderate" at 25 and above, "weak" below 25. Null above latitude 66.56, where the Placidus cusps the KP significators are read from have no solution: the question does not apply there rather than the answer being no, so never render it as zero or as a weak verdict. The natal block beside it is unaffected and still ships, and degraded names areas.finance.score.
18796
+ */
18797
+ band: 'very-strong' | 'strong' | 'moderate' | 'weak' | null;
18798
+ /**
18799
+ * How many connections land on the positive house group 2, 5, 11, which KP reads as accumulated wealth, speculation and gains. Null above latitude 66.56, where the Placidus cusps the KP significators are read from have no solution: the question does not apply there rather than the answer being no, so never render it as zero or as a weak verdict. The natal block beside it is unaffected and still ships, and degraded names areas.finance.score.
18800
+ */
18801
+ positive: number | null;
18802
+ /**
18803
+ * How many connections land on the negative house group 6, 8, 12, which KP reads as debt, sudden loss and expenditure. Null above latitude 66.56, where the Placidus cusps the KP significators are read from have no solution: the question does not apply there rather than the answer being no, so never render it as zero or as a weak verdict. The natal block beside it is unaffected and still ships, and degraded names areas.finance.score.
18804
+ */
18805
+ negative: number | null;
18806
+ /**
18807
+ * Every positive-group connection, strongest KP level first. These are the specific lord-to-house links the score is made of, so the number can be audited rather than trusted. Null above latitude 66.56, where the Placidus cusps the KP significators are read from have no solution: the question does not apply there rather than the answer being no, so never render it as zero or as a weak verdict. The natal block beside it is unaffected and still ships, and degraded names areas.finance.score.
18808
+ */
18809
+ drivers: Array<{
18810
+ /**
18811
+ * The running dasha lord making this connection. A lord holding two of the three levels is listed once per house rather than twice, so nothing here is a hidden weight.
18812
+ */
18813
+ graha: string;
18814
+ /**
18815
+ * The finance house this lord reaches. One of the positive group 2, 5, 11 or the negative group 6, 8, 12.
18816
+ */
18817
+ house: number;
18818
+ /**
18819
+ * Strongest KP significator level at which this lord reaches this house, 1 to 4. Level 1 is a planet in the constellation of the occupant, 2 the occupant, 3 a planet in the constellation of the house owner, 4 the house owner. Strongest level per house wins, which is step 1 of the published grading rule the dasha routes already use.
18820
+ */
18821
+ level: number;
18822
+ /**
18823
+ * The KP letter for that level, on the standard A to D significator grading. A is the strongest connection.
18824
+ */
18825
+ grade: 'A' | 'B' | 'C' | 'D';
18826
+ /**
18827
+ * Which of the running levels this graha rules. Carries the fact that one lord holds more than one level without letting it count twice.
18828
+ */
18829
+ dashaLevels: Array<'mahadasha' | 'antardasha' | 'pratyantardasha'>;
18830
+ }> | null;
18831
+ /**
18832
+ * Every negative-group connection, strongest KP level first. Null above latitude 66.56, where the Placidus cusps the KP significators are read from have no solution: the question does not apply there rather than the answer being no, so never render it as zero or as a weak verdict. The natal block beside it is unaffected and still ships, and degraded names areas.finance.score.
18833
+ */
18834
+ cautions: Array<{
18835
+ /**
18836
+ * The running dasha lord making this connection. A lord holding two of the three levels is listed once per house rather than twice, so nothing here is a hidden weight.
18837
+ */
18838
+ graha: string;
18839
+ /**
18840
+ * The finance house this lord reaches. One of the positive group 2, 5, 11 or the negative group 6, 8, 12.
18841
+ */
18842
+ house: number;
18843
+ /**
18844
+ * Strongest KP significator level at which this lord reaches this house, 1 to 4. Level 1 is a planet in the constellation of the occupant, 2 the occupant, 3 a planet in the constellation of the house owner, 4 the house owner. Strongest level per house wins, which is step 1 of the published grading rule the dasha routes already use.
18845
+ */
18846
+ level: number;
18847
+ /**
18848
+ * The KP letter for that level, on the standard A to D significator grading. A is the strongest connection.
18849
+ */
18850
+ grade: 'A' | 'B' | 'C' | 'D';
18851
+ /**
18852
+ * Which of the running levels this graha rules. Carries the fact that one lord holds more than one level without letting it count twice.
18853
+ */
18854
+ dashaLevels: Array<'mahadasha' | 'antardasha' | 'pratyantardasha'>;
18855
+ }> | null;
18856
+ /**
18857
+ * The natal basis of this area: whether the chart is wealthy AT ALL, as the four classical wealth and poverty verdicts dhana, daridra, lakshmi, dhanamalika, each with the evidence that decided it. A PROPERTY OF THE BIRTH CHART AND NOT OF THE DAY, so it is the same block on every date this native is ever read for, which is exactly why it is CONTEXT rather than a term: it deliberately does not enter score, verdict, tally or evaluated, above or here. Folding a constant into a per-day number would shift every day by the identical amount, carrying no information into the only comparison those numbers support, and it would break the published closed form that makes the top-level score reproducible by hand from grahas alone. Read it as the standing question the day is being read against. The verdicts are the same ones POST /yoga/detect and POST /birth-chart return for this chart, computed in the Lahiri natal frame rather than in the KP-Newcomb frame the significators above use. PRESENT AT EVERY LATITUDE, including above the polar circle: these verdicts need only whole-sign houses from the Lagna, so nothing about them depends on the cusps the KP members above lose there.
18858
+ */
18859
+ natal: Array<{
18860
+ /**
18861
+ * Glossary id of the verdict, one of dhana, daridra, lakshmi, dhanamalika. Use it with GET /yoga/{id} for the full glossary entry, which carries the description and the classical result in every supported language. Canonical English, so it stays safe to switch on in code.
18862
+ */
18863
+ id: string;
18864
+ /**
18865
+ * Classical Sanskrit name of the combination. Canonical whatever the lang parameter says, exactly as the yoga endpoints return it.
18866
+ */
18867
+ name: string;
18868
+ /**
18869
+ * Which way a present verdict points, carried because three of the four are wealth combinations and Daridra is a poverty one, so present alone does not tell a client whether to read it as support or as pressure. Canonical English machine value.
18870
+ */
18871
+ quality: 'Positive' | 'Negative' | 'Both';
18872
+ /**
18873
+ * Whether the combination is on this chart. False means every rule in the family was evaluated and none held, which is a real answer rather than a missing one, and the evidence beside it names the full denominator.
18874
+ */
18875
+ present: boolean;
18876
+ /**
18877
+ * Why the verdict reads the way it does: every rule that matched, named by its own glossary id and its verse, with the exact condition it matched on, then the scope of the family. This is what makes the verdict checkable against a text rather than a label to be trusted, and it is also where the two excluded rules are declared: daridra-8 and daridra-9 rest on a single authority and are barred from deciding a verdict, though both still ship through GET /yoga/{id}. English in every language, like the per-graha stateSource, because it is provenance rather than display copy.
18878
+ */
18879
+ evidence: string;
18880
+ }>;
18881
+ };
18882
+ };
18883
+ /**
18884
+ * How much of the transiting sky supports this native today: supportive grahas divided by grahas evaluated, as a percentage, rounded. HAND REPRODUCIBLE FROM THIS RESPONSE ALONE, with no weights to publish and none to defend. STEP 1, count the grahas whose state is one of favourable; the tally array has that count already. STEP 2, divide by evaluated and round. Worked example: 2 supportive out of 9 evaluated scores round(2 / 9 * 100) = 22. The other states (underdelivered, obstructed, void, aggravated, unfavourable) count for nothing, because each of them is the tradition saying the promised good was reduced, cancelled or emptied. WHY IT IS A COUNT AND NOT A SUM: the tradition does not add these limbs up. Phaladeepika XXVI.41 makes a high bindu count an OVERRIDE that turns even the 6th, 8th and 12th good, and XXVI.30 to XXVI.32 make aspect, dignity and combustion NULLIFIERS, so a weighted sum would be a different mathematical object and could not carry those citations. The GATES are classical, the COUNTING is the RoxyAPI convention, and this sentence is where we say which is which. HOW TO READ THE NUMBER: it runs low by construction and that is the correct answer rather than a defect. Nine bodies casting drishti means almost every transiting graha is aspected by something, and the sloka voids the result when it is, so most days land in the bottom half and a high score is rare and therefore meaningful. Read it as a rare-high scale, not as a mark out of 100: 22 is an ordinary day, not a failing one. And it measures SUPPORT, never OUTCOME. It says how much of the sky backs this native today, never whether the day is good for a particular matter, which depends on the matter being judged.
18885
+ */
18886
+ score: number;
18887
+ /**
18888
+ * The band the score falls in: "very-strong" at 75 and above, "strong" at 50 and above, "moderate" at 25 and above, "weak" below 25. The four WORDS are the shipped KP significator band words, reused so nothing new has to be translated. The EDGES are the RoxyAPI convention and are quartiles, because no authority bands a day and quartiles are the least arbitrary division of a percentage into four named steps. Read it with the same expectation the score carries: the gates cancel far more often than they deliver, so the lower bands are the common case.
18889
+ */
18890
+ verdict: 'very-strong' | 'strong' | 'moderate' | 'weak';
18891
+ /**
18892
+ * The full per-state count, always all six states including the zeros. This is the WHOLE input to the score, which is what makes the number reproducible by hand, and it is also what lets a caller who reads the states differently compute their own figure from this response instead of asking for a second one.
18893
+ */
18894
+ tally: Array<{
18895
+ /**
18896
+ * One of the six outcomes a transiting graha can reach.
18897
+ */
18898
+ state: 'favourable' | 'underdelivered' | 'obstructed' | 'void' | 'aggravated' | 'unfavourable';
18899
+ /**
18900
+ * How many of the evaluated grahas reached that state.
18901
+ */
18902
+ count: number;
18903
+ }>;
18904
+ /**
18905
+ * How many grahas were put through the gates, which is the denominator of the score. Rahu and Ketu are included: they skip the bindu gate because they have no Bhinnashtakavarga, and a skipped gate is not a failed one, so they still reach a state through the other three.
18906
+ */
18907
+ evaluated: number;
18908
+ /**
18909
+ * Components this request could not supply, named rather than silently defaulted. Empty on an ordinary reading. A polar chart degrades through here instead of failing, so the caller still gets the gochara, the panchanga, the dasha and the natal basis of the finance area, and is told exactly what is missing.
18910
+ */
18911
+ degraded: Array<{
18912
+ /**
18913
+ * Which part of the reading this location or date could not supply. "areas.finance.score" names the KP net by the member it is read through: the finance area itself always ships and its natal block is always populated, and it is the six netted members that are null.
18914
+ */
18915
+ component: 'dayStart' | 'dayEnd' | 'areas.finance.score';
18916
+ /**
18917
+ * Why it could not: "sun-does-not-rise" for a day with no sunrise at these coordinates, "polar-latitude" above 66.56 degrees where the Placidus cusps have no solution.
18918
+ */
18919
+ reason: 'sun-does-not-rise' | 'polar-latitude';
18920
+ }>;
18921
+ /**
18922
+ * Significations of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
18923
+ */
18924
+ houseThemes: {
18925
+ [key: string]: Array<string>;
18926
+ };
18927
+ /**
18928
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
18929
+ */
18930
+ focus: 'general' | 'finance';
18931
+ };
18932
+ };
18933
+ export type GetVedicDailyReadingResponse = GetVedicDailyReadingResponses[keyof GetVedicDailyReadingResponses];
18216
18934
  export type GetBasicPanchangData = {
18217
18935
  body?: {
18218
18936
  /**
@@ -20267,7 +20985,7 @@ export type DetectYogasErrors = {
20267
20985
  export type DetectYogasError = DetectYogasErrors[keyof DetectYogasErrors];
20268
20986
  export type DetectYogasResponses = {
20269
20987
  /**
20270
- * List of 44 classical yogas with present/absent verdicts and classical-text evidence.
20988
+ * List of 48 classical yogas with present/absent verdicts and classical-text evidence.
20271
20989
  */
20272
20990
  200: YogaDetectResponse;
20273
20991
  };