@roxyapi/sdk 1.2.70 → 1.2.72

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.
@@ -13452,11 +13452,48 @@ export type GetAstrologyHoroscopeBySignDailyResponses = {
13452
13452
  */
13453
13453
  advice: string;
13454
13454
  /**
13455
- * Lucky number for the day.
13455
+ * The full column for this period, ready to run as one piece, with paragraphs separated by a blank line. Names the events driving it and the dates they fall on, read into the whole-sign houses of this sign. Typically 120 to 180 words. The six section fields are the same reading split by topic, so render either shape and never both. Deterministic: the same sign and period always returns the same column.
13456
+ */
13457
+ column: string;
13458
+ /**
13459
+ * The dated astronomical events this reading is built on, earliest first. Every field in every row can be checked against an independent authority, so a column can be fact-checked before it is published. Empty on a period in which nothing exact happens, where the reading falls back to the standing positions instead.
13460
+ */
13461
+ events: Array<{
13462
+ /**
13463
+ * Kind of event. aspect is an exact angle between two moving bodies, sign-ingress a body entering a new sign, retrograde-station a body turning retrograde or direct, lunar-phase one of the four quarters, eclipse a solar or lunar eclipse, and solar-season the Sun entering a sign.
13464
+ */
13465
+ type: 'aspect' | 'sign-ingress' | 'retrograde-station' | 'lunar-phase' | 'eclipse' | 'solar-season';
13466
+ /**
13467
+ * Exact instant the event perfects, UTC, to the second. Verifiable against NASA JPL Horizons for a position event and against the US Naval Observatory for a lunar phase or eclipse.
13468
+ */
13469
+ at: string;
13470
+ /**
13471
+ * Bodies involved, canonical English regardless of the requested language so the value stays safe to switch on. Two entries for an aspect, faster body first. One entry for an ingress, a station, a lunar phase, or an eclipse.
13472
+ */
13473
+ bodies: Array<string>;
13474
+ /**
13475
+ * Angle formed, on aspect events only: conjunction, sextile, square, trine, opposition, semi-sextile, quincunx, semi-square, or sesquiquadrate.
13476
+ */
13477
+ aspect?: string;
13478
+ /**
13479
+ * Sign the event falls in, lowercase, where it has exactly one. Absent for an aspect whose two bodies stand in different signs.
13480
+ */
13481
+ sign?: string;
13482
+ /**
13483
+ * Whole-sign house the event falls in, counted from the queried sign, 1 to 12. This is what turns one global sky event into a statement about this reader.
13484
+ */
13485
+ house: number;
13486
+ /**
13487
+ * End of the window this event holds open, UTC, given only where a bounded window is a real fact about it: the orb span of an aspect, the sign span of an ingress or a season, the retrograde span of a station. Absent for a lunar phase or an eclipse, which are instants and not spans.
13488
+ */
13489
+ through?: string;
13490
+ }>;
13491
+ /**
13492
+ * Lucky number for the day, 1 to 9, from the traditional planetary number correspondence applied to the planet that governs this sign today. Not a random draw and not a function of the date.
13456
13493
  */
13457
13494
  luckyNumber: number;
13458
13495
  /**
13459
- * Lucky color for the day, derived from the sign element.
13496
+ * Lucky color for the day, drawn from the three colors of the sign element and selected by the planet governing the reading.
13460
13497
  */
13461
13498
  luckyColor: string;
13462
13499
  /**
@@ -13476,7 +13513,7 @@ export type GetAstrologyHoroscopeBySignDailyResponses = {
13476
13513
  */
13477
13514
  moonPhase: string;
13478
13515
  /**
13479
- * Overall energy intensity for this sign today (1-10). Higher when more transits activate this sign directly. Useful for content widgets and visual indicators.
13516
+ * Overall energy for this sign today (1-10). Derived from how many aspects are in force between the planets, how tight they are, whether they are harmonious or challenging, and which houses they fall in for this sign, so a busy day rates higher than a quiet one and a harmonious day higher than a hostile one of the same weight. Useful for content widgets and visual indicators.
13480
13517
  */
13481
13518
  energyRating: number;
13482
13519
  };
@@ -13646,11 +13683,48 @@ export type GetAstrologyHoroscopeBySignWeeklyResponses = {
13646
13683
  */
13647
13684
  advice: string;
13648
13685
  /**
13649
- * Favorable days this week, based on planetary rulership.
13686
+ * The full column for this period, ready to run as one piece, with paragraphs separated by a blank line. Names the events driving it and the dates they fall on, read into the whole-sign houses of this sign. Typically 250 to 450 words. The six section fields are the same reading split by topic, so render either shape and never both. Deterministic: the same sign and period always returns the same column.
13687
+ */
13688
+ column: string;
13689
+ /**
13690
+ * The dated astronomical events this reading is built on, earliest first. Every field in every row can be checked against an independent authority, so a column can be fact-checked before it is published. Empty on a period in which nothing exact happens, where the reading falls back to the standing positions instead.
13691
+ */
13692
+ events: Array<{
13693
+ /**
13694
+ * Kind of event. aspect is an exact angle between two moving bodies, sign-ingress a body entering a new sign, retrograde-station a body turning retrograde or direct, lunar-phase one of the four quarters, eclipse a solar or lunar eclipse, and solar-season the Sun entering a sign.
13695
+ */
13696
+ type: 'aspect' | 'sign-ingress' | 'retrograde-station' | 'lunar-phase' | 'eclipse' | 'solar-season';
13697
+ /**
13698
+ * Exact instant the event perfects, UTC, to the second. Verifiable against NASA JPL Horizons for a position event and against the US Naval Observatory for a lunar phase or eclipse.
13699
+ */
13700
+ at: string;
13701
+ /**
13702
+ * Bodies involved, canonical English regardless of the requested language so the value stays safe to switch on. Two entries for an aspect, faster body first. One entry for an ingress, a station, a lunar phase, or an eclipse.
13703
+ */
13704
+ bodies: Array<string>;
13705
+ /**
13706
+ * Angle formed, on aspect events only: conjunction, sextile, square, trine, opposition, semi-sextile, quincunx, semi-square, or sesquiquadrate.
13707
+ */
13708
+ aspect?: string;
13709
+ /**
13710
+ * Sign the event falls in, lowercase, where it has exactly one. Absent for an aspect whose two bodies stand in different signs.
13711
+ */
13712
+ sign?: string;
13713
+ /**
13714
+ * Whole-sign house the event falls in, counted from the queried sign, 1 to 12. This is what turns one global sky event into a statement about this reader.
13715
+ */
13716
+ house: number;
13717
+ /**
13718
+ * End of the window this event holds open, UTC, given only where a bounded window is a real fact about it: the orb span of an aspect, the sign span of an ingress or a season, the retrograde span of a station. Absent for a lunar phase or an eclipse, which are instants and not spans.
13719
+ */
13720
+ through?: string;
13721
+ }>;
13722
+ /**
13723
+ * The three most favorable days this week, from the planetary rulers of the seven weekdays, ranked by how strongly each of those planets stands for this sign.
13650
13724
  */
13651
13725
  luckyDays: Array<string>;
13652
13726
  /**
13653
- * Lucky numbers for the week.
13727
+ * Three lucky numbers for the week, each 1 to 9 and all distinct, from the traditional planetary number correspondence applied to the three planets that govern this sign this week.
13654
13728
  */
13655
13729
  luckyNumbers: Array<number>;
13656
13730
  /**
@@ -13823,6 +13897,43 @@ export type GetAstrologyHoroscopeBySignMonthlyResponses = {
13823
13897
  * Actionable guidance for the month as a whole, derived from the Mercury house activation for this sign. Distinct from the per-week advice inside weekByWeek: this is the single takeaway for the month.
13824
13898
  */
13825
13899
  advice: string;
13900
+ /**
13901
+ * The full column for this period, ready to run as one piece, with paragraphs separated by a blank line. Names the events driving it and the dates they fall on, read into the whole-sign houses of this sign. Typically 400 to 700 words. The six section fields are the same reading split by topic, so render either shape and never both. Deterministic: the same sign and period always returns the same column.
13902
+ */
13903
+ column: string;
13904
+ /**
13905
+ * The dated astronomical events this reading is built on, earliest first. Every field in every row can be checked against an independent authority, so a column can be fact-checked before it is published. Empty on a period in which nothing exact happens, where the reading falls back to the standing positions instead.
13906
+ */
13907
+ events: Array<{
13908
+ /**
13909
+ * Kind of event. aspect is an exact angle between two moving bodies, sign-ingress a body entering a new sign, retrograde-station a body turning retrograde or direct, lunar-phase one of the four quarters, eclipse a solar or lunar eclipse, and solar-season the Sun entering a sign.
13910
+ */
13911
+ type: 'aspect' | 'sign-ingress' | 'retrograde-station' | 'lunar-phase' | 'eclipse' | 'solar-season';
13912
+ /**
13913
+ * Exact instant the event perfects, UTC, to the second. Verifiable against NASA JPL Horizons for a position event and against the US Naval Observatory for a lunar phase or eclipse.
13914
+ */
13915
+ at: string;
13916
+ /**
13917
+ * Bodies involved, canonical English regardless of the requested language so the value stays safe to switch on. Two entries for an aspect, faster body first. One entry for an ingress, a station, a lunar phase, or an eclipse.
13918
+ */
13919
+ bodies: Array<string>;
13920
+ /**
13921
+ * Angle formed, on aspect events only: conjunction, sextile, square, trine, opposition, semi-sextile, quincunx, semi-square, or sesquiquadrate.
13922
+ */
13923
+ aspect?: string;
13924
+ /**
13925
+ * Sign the event falls in, lowercase, where it has exactly one. Absent for an aspect whose two bodies stand in different signs.
13926
+ */
13927
+ sign?: string;
13928
+ /**
13929
+ * Whole-sign house the event falls in, counted from the queried sign, 1 to 12. This is what turns one global sky event into a statement about this reader.
13930
+ */
13931
+ house: number;
13932
+ /**
13933
+ * End of the window this event holds open, UTC, given only where a bounded window is a real fact about it: the orb span of an aspect, the sign span of an ingress or a season, the retrograde span of a station. Absent for a lunar phase or an eclipse, which are instants and not spans.
13934
+ */
13935
+ through?: string;
13936
+ }>;
13826
13937
  /**
13827
13938
  * Week-by-week breakdown with sign-specific focus areas based on transit house positions.
13828
13939
  */
@@ -13854,11 +13965,11 @@ export type GetAstrologyHoroscopeBySignMonthlyResponses = {
13854
13965
  event: string;
13855
13966
  }>;
13856
13967
  /**
13857
- * Lucky numbers for the month.
13968
+ * Four lucky numbers for the month, each 1 to 9 and all distinct, from the traditional planetary number correspondence applied to the four planets that govern this sign this month.
13858
13969
  */
13859
13970
  luckyNumbers: Array<number>;
13860
13971
  /**
13861
- * Lucky color for the month.
13972
+ * Lucky color for the month, drawn from the three colors of the sign element and selected by the planet governing the reading.
13862
13973
  */
13863
13974
  luckyColor: string;
13864
13975
  /**
@@ -13868,6 +13979,394 @@ export type GetAstrologyHoroscopeBySignMonthlyResponses = {
13868
13979
  };
13869
13980
  };
13870
13981
  export type GetAstrologyHoroscopeBySignMonthlyResponse = GetAstrologyHoroscopeBySignMonthlyResponses[keyof GetAstrologyHoroscopeBySignMonthlyResponses];
13982
+ export type GetAstrologyHoroscopeBySignYearlyData = {
13983
+ body?: never;
13984
+ path: {
13985
+ /**
13986
+ * Zodiac sign, case-insensitive (e.g., aries, Aries, ARIES all work).
13987
+ */
13988
+ sign: 'aries' | 'taurus' | 'gemini' | 'cancer' | 'leo' | 'virgo' | 'libra' | 'scorpio' | 'sagittarius' | 'capricorn' | 'aquarius' | 'pisces';
13989
+ };
13990
+ query?: {
13991
+ /**
13992
+ * Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.
13993
+ */
13994
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru' | 'zh-Hans' | 'zh-Hant';
13995
+ /**
13996
+ * Calendar year to forecast, 1900 to 2100. Defaults to the current year in the timezone parameter.
13997
+ */
13998
+ year?: number;
13999
+ /**
14000
+ * Selects which year counts as current when year is omitted. Defaults to UTC, so the forecast rolls over at 00:00 UTC on January 1. Pass the timezone of the end user to roll over on their local clock instead. Ignored when year is set. Accepts an IANA name (e.g. "America/New_York"), decimal hours (e.g. 5.5 for IST), or a fixed UTC offset (e.g. "-05:00").
14001
+ */
14002
+ timezone?: string;
14003
+ };
14004
+ url: '/astrology/horoscope/{sign}/yearly';
14005
+ };
14006
+ export type GetAstrologyHoroscopeBySignYearlyErrors = {
14007
+ /**
14008
+ * Validation error. `issues[]` lists every failed field.
14009
+ */
14010
+ 400: {
14011
+ /**
14012
+ * First issue summary.
14013
+ */
14014
+ error: string;
14015
+ code: 'validation_error';
14016
+ /**
14017
+ * Every validation failure. Use this to rebuild a valid request.
14018
+ */
14019
+ issues: Array<{
14020
+ /**
14021
+ * Dot-separated field path, or "(root)" for top-level.
14022
+ */
14023
+ path: string;
14024
+ message: string;
14025
+ /**
14026
+ * Zod issue code (invalid_type, too_small, too_big, invalid_string, ...).
14027
+ */
14028
+ code?: string;
14029
+ /**
14030
+ * Expected type for invalid_type.
14031
+ */
14032
+ expected?: string;
14033
+ /**
14034
+ * Minimum bound for too_small issues.
14035
+ */
14036
+ minimum?: number | string;
14037
+ /**
14038
+ * Maximum bound for too_big issues.
14039
+ */
14040
+ maximum?: number | string;
14041
+ inclusive?: boolean;
14042
+ /**
14043
+ * Format name for string issues (regex, email, url, uuid).
14044
+ */
14045
+ format?: string;
14046
+ /**
14047
+ * Regex pattern when format is regex.
14048
+ */
14049
+ pattern?: string;
14050
+ }>;
14051
+ };
14052
+ /**
14053
+ * Invalid or missing API key
14054
+ */
14055
+ 401: {
14056
+ /**
14057
+ * Human-readable error message. May change wording.
14058
+ */
14059
+ error: string;
14060
+ /**
14061
+ * Machine-readable error code. Stable identifier.
14062
+ */
14063
+ code: string;
14064
+ };
14065
+ /**
14066
+ * Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header.
14067
+ */
14068
+ 405: {
14069
+ error: string;
14070
+ code: 'method_not_allowed';
14071
+ /**
14072
+ * Allowed HTTP methods for this path. Mirrors the Allow response header.
14073
+ */
14074
+ allow: Array<string>;
14075
+ /**
14076
+ * Link to the product page for this domain.
14077
+ */
14078
+ docs?: string;
14079
+ };
14080
+ /**
14081
+ * Monthly rate limit exceeded
14082
+ */
14083
+ 429: {
14084
+ /**
14085
+ * Human-readable error message. May change wording.
14086
+ */
14087
+ error: string;
14088
+ /**
14089
+ * Machine-readable error code. Stable identifier.
14090
+ */
14091
+ code: string;
14092
+ };
14093
+ /**
14094
+ * Internal server error
14095
+ */
14096
+ 500: {
14097
+ /**
14098
+ * Human-readable error message. May change wording.
14099
+ */
14100
+ error: string;
14101
+ /**
14102
+ * Machine-readable error code. Stable identifier.
14103
+ */
14104
+ code: string;
14105
+ };
14106
+ };
14107
+ export type GetAstrologyHoroscopeBySignYearlyError = GetAstrologyHoroscopeBySignYearlyErrors[keyof GetAstrologyHoroscopeBySignYearlyErrors];
14108
+ export type GetAstrologyHoroscopeBySignYearlyResponses = {
14109
+ /**
14110
+ * Yearly horoscope retrieved successfully
14111
+ */
14112
+ 200: {
14113
+ /**
14114
+ * Zodiac sign for this horoscope.
14115
+ */
14116
+ sign: string;
14117
+ /**
14118
+ * Calendar year this forecast covers. Echoes the year requested, or the current year when it was omitted.
14119
+ */
14120
+ year: number;
14121
+ /**
14122
+ * Yearly overview, led by the single event with the most weight for this sign across the whole year.
14123
+ */
14124
+ overview: string;
14125
+ /**
14126
+ * Yearly love and relationship outlook.
14127
+ */
14128
+ love: string;
14129
+ /**
14130
+ * Yearly career and professional outlook.
14131
+ */
14132
+ career: string;
14133
+ /**
14134
+ * Yearly health, energy, and wellness outlook.
14135
+ */
14136
+ health: string;
14137
+ /**
14138
+ * Yearly financial outlook.
14139
+ */
14140
+ finance: string;
14141
+ /**
14142
+ * The single takeaway for the year, drawn from the event that leads it rather than stated in general terms.
14143
+ */
14144
+ advice: string;
14145
+ /**
14146
+ * The full column for this period, ready to run as one piece, with paragraphs separated by a blank line. Names the events driving it and the dates they fall on, read into the whole-sign houses of this sign. Typically 600 to 900 words. The six section fields are the same reading split by topic, so render either shape and never both. Deterministic: the same sign and period always returns the same column.
14147
+ */
14148
+ column: string;
14149
+ /**
14150
+ * The dated astronomical events this reading is built on, earliest first. Every field in every row can be checked against an independent authority, so a column can be fact-checked before it is published. Empty on a period in which nothing exact happens, where the reading falls back to the standing positions instead.
14151
+ */
14152
+ events: Array<{
14153
+ /**
14154
+ * Kind of event. aspect is an exact angle between two moving bodies, sign-ingress a body entering a new sign, retrograde-station a body turning retrograde or direct, lunar-phase one of the four quarters, eclipse a solar or lunar eclipse, and solar-season the Sun entering a sign.
14155
+ */
14156
+ type: 'aspect' | 'sign-ingress' | 'retrograde-station' | 'lunar-phase' | 'eclipse' | 'solar-season';
14157
+ /**
14158
+ * Exact instant the event perfects, UTC, to the second. Verifiable against NASA JPL Horizons for a position event and against the US Naval Observatory for a lunar phase or eclipse.
14159
+ */
14160
+ at: string;
14161
+ /**
14162
+ * Bodies involved, canonical English regardless of the requested language so the value stays safe to switch on. Two entries for an aspect, faster body first. One entry for an ingress, a station, a lunar phase, or an eclipse.
14163
+ */
14164
+ bodies: Array<string>;
14165
+ /**
14166
+ * Angle formed, on aspect events only: conjunction, sextile, square, trine, opposition, semi-sextile, quincunx, semi-square, or sesquiquadrate.
14167
+ */
14168
+ aspect?: string;
14169
+ /**
14170
+ * Sign the event falls in, lowercase, where it has exactly one. Absent for an aspect whose two bodies stand in different signs.
14171
+ */
14172
+ sign?: string;
14173
+ /**
14174
+ * Whole-sign house the event falls in, counted from the queried sign, 1 to 12. This is what turns one global sky event into a statement about this reader.
14175
+ */
14176
+ house: number;
14177
+ /**
14178
+ * End of the window this event holds open, UTC, given only where a bounded window is a real fact about it: the orb span of an aspect, the sign span of an ingress or a season, the retrograde span of a station. Absent for a lunar phase or an eclipse, which are instants and not spans.
14179
+ */
14180
+ through?: string;
14181
+ }>;
14182
+ /**
14183
+ * The backdrop of the year: which whole-sign house each slow-moving body occupies for this sign, Jupiter first and Pluto last. One row per unbroken stretch, so a body that stays put is a single row spanning the year and a body that changes sign is two rows with the exact date between them. Dates are the part of the stretch that falls inside this year; the full span of a change that happens inside the year is in the events array. Use it for the year-at-a-glance panel a year-ahead page opens with.
14184
+ */
14185
+ themes: Array<{
14186
+ /**
14187
+ * The slow-moving body holding this theme, canonical English regardless of the requested language: Jupiter, Saturn, Uranus, Neptune, or Pluto.
14188
+ */
14189
+ body: string;
14190
+ /**
14191
+ * Sign the body occupies through this stretch, lowercase. Checkable against NASA JPL Horizons for any date inside from and to.
14192
+ */
14193
+ sign: string;
14194
+ /**
14195
+ * Whole-sign house that sign is for this sign, 1 to 12.
14196
+ */
14197
+ house: number;
14198
+ /**
14199
+ * What that house governs, so the placement reads as a life area rather than a coordinate.
14200
+ */
14201
+ theme: string;
14202
+ /**
14203
+ * First date of the stretch inside this year, in UTC (YYYY-MM-DD). January 1 when the body was already there when the year opened, otherwise the date it arrived.
14204
+ */
14205
+ from: string;
14206
+ /**
14207
+ * Last date of the stretch inside this year, in UTC (YYYY-MM-DD). December 31 when the body is still there when the year closes, otherwise the date it leaves.
14208
+ */
14209
+ to: string;
14210
+ }>;
14211
+ /**
14212
+ * Every solar and lunar eclipse of the year, with the house each one falls in for this sign. Usually four to six, and the dates match the published eclipse canon.
14213
+ */
14214
+ eclipses: Array<{
14215
+ /**
14216
+ * Date of the eclipse peak in UTC (YYYY-MM-DD). The exact instant is in the events array.
14217
+ */
14218
+ date: string;
14219
+ /**
14220
+ * Eclipse kind: total, annular, partial, or penumbral.
14221
+ */
14222
+ kind: string;
14223
+ /**
14224
+ * Whole-sign house the eclipse falls in for this sign, 1 to 12.
14225
+ */
14226
+ house: number;
14227
+ /**
14228
+ * What that house governs, so the eclipse reads as a life area rather than a coordinate.
14229
+ */
14230
+ theme: string;
14231
+ }>;
14232
+ /**
14233
+ * Every retrograde and direct station of the year, in order, with the house each falls in for this sign. Drives review windows and the not-yet warnings a yearly column is bought for.
14234
+ */
14235
+ retrogrades: Array<{
14236
+ /**
14237
+ * Date the body turns, in UTC (YYYY-MM-DD). The exact instant is in the events array.
14238
+ */
14239
+ date: string;
14240
+ /**
14241
+ * Body making the station, canonical English.
14242
+ */
14243
+ body: string;
14244
+ /**
14245
+ * Which way it turns: retrograde when apparent motion reverses, direct when it resumes.
14246
+ */
14247
+ direction: string;
14248
+ /**
14249
+ * Whole-sign house the station falls in for this sign, 1 to 12.
14250
+ */
14251
+ house: number;
14252
+ /**
14253
+ * What that house governs, so the station reads as a life area rather than a coordinate.
14254
+ */
14255
+ theme: string;
14256
+ }>;
14257
+ /**
14258
+ * The year as a calendar of life areas: for each whole-sign house, the single dated stretch that most strongly activates it, ordered by start date. Twelve rows in a full year, one per house, so every life area gets a date range and none is named twice. Periods overlap freely, because more than one body is always moving. Use it for the dates-to-circle panel of a year-ahead page.
14259
+ */
14260
+ keyPeriods: Array<{
14261
+ /**
14262
+ * Date the period opens, in UTC (YYYY-MM-DD). Always inside the year requested: this is the day the body enters the sign.
14263
+ */
14264
+ from: string;
14265
+ /**
14266
+ * Date the period closes, in UTC (YYYY-MM-DD), which is the day the body leaves that sign. A period that opens late in the year closes in the next one, by at most about three months, so a reader knows what they are still in on January 1.
14267
+ */
14268
+ to: string;
14269
+ /**
14270
+ * Body driving the period, canonical English regardless of the requested language: Mercury, Venus, or Mars. The slower bodies are in the themes array instead, because a stretch measured in years is a backdrop rather than a date to circle.
14271
+ */
14272
+ body: string;
14273
+ /**
14274
+ * Whole-sign house the period activates for this sign, 1 to 12. Unique within the array: each house appears at most once.
14275
+ */
14276
+ house: number;
14277
+ /**
14278
+ * The life area that period is about, from the house it activates.
14279
+ */
14280
+ focus: string;
14281
+ }>;
14282
+ /**
14283
+ * The easiest month of the year for each of the four topic sections, by how many exact harmonious aspects (sextiles and trines) fall in that month and land in the houses that govern the area for this sign. An area is omitted only in the rare year that carries no harmonious aspect for it at all, so treat each key as optional. Use it for the best-months-for panel, and read the count as the evidence behind the word best.
14284
+ */
14285
+ bestPeriods: {
14286
+ /**
14287
+ * Best month for romance and partnership. Absent only if the whole year carries no harmonious aspect reaching this area.
14288
+ */
14289
+ love?: {
14290
+ /**
14291
+ * First day of the month, in UTC (YYYY-MM-DD).
14292
+ */
14293
+ from: string;
14294
+ /**
14295
+ * Last day of the month, in UTC (YYYY-MM-DD).
14296
+ */
14297
+ to: string;
14298
+ /**
14299
+ * How many exact harmonious aspects fell in that month and reached this area. This is the measurement the month was chosen on, and every aspect behind it can be checked against NASA JPL Horizons.
14300
+ */
14301
+ count: number;
14302
+ };
14303
+ /**
14304
+ * Best month for career, work and reputation. Absent only if the whole year carries no harmonious aspect reaching this area.
14305
+ */
14306
+ career?: {
14307
+ /**
14308
+ * First day of the month, in UTC (YYYY-MM-DD).
14309
+ */
14310
+ from: string;
14311
+ /**
14312
+ * Last day of the month, in UTC (YYYY-MM-DD).
14313
+ */
14314
+ to: string;
14315
+ /**
14316
+ * How many exact harmonious aspects fell in that month and reached this area. This is the measurement the month was chosen on, and every aspect behind it can be checked against NASA JPL Horizons.
14317
+ */
14318
+ count: number;
14319
+ };
14320
+ /**
14321
+ * Best month for health. Absent only if the whole year carries no harmonious aspect reaching this area.
14322
+ */
14323
+ health?: {
14324
+ /**
14325
+ * First day of the month, in UTC (YYYY-MM-DD).
14326
+ */
14327
+ from: string;
14328
+ /**
14329
+ * Last day of the month, in UTC (YYYY-MM-DD).
14330
+ */
14331
+ to: string;
14332
+ /**
14333
+ * How many exact harmonious aspects fell in that month and reached this area. This is the measurement the month was chosen on, and every aspect behind it can be checked against NASA JPL Horizons.
14334
+ */
14335
+ count: number;
14336
+ };
14337
+ /**
14338
+ * Best month for finance. Absent only if the whole year carries no harmonious aspect reaching this area.
14339
+ */
14340
+ finance?: {
14341
+ /**
14342
+ * First day of the month, in UTC (YYYY-MM-DD).
14343
+ */
14344
+ from: string;
14345
+ /**
14346
+ * Last day of the month, in UTC (YYYY-MM-DD).
14347
+ */
14348
+ to: string;
14349
+ /**
14350
+ * How many exact harmonious aspects fell in that month and reached this area. This is the measurement the month was chosen on, and every aspect behind it can be checked against NASA JPL Horizons.
14351
+ */
14352
+ count: number;
14353
+ };
14354
+ };
14355
+ /**
14356
+ * Four lucky numbers for the year, each 1 to 9 and all distinct, from the traditional planetary number correspondence applied to the four planets that govern this sign this year.
14357
+ */
14358
+ luckyNumbers: Array<number>;
14359
+ /**
14360
+ * Lucky color for the year, drawn from the three colors of the sign element and selected by the planet governing the reading.
14361
+ */
14362
+ luckyColor: string;
14363
+ /**
14364
+ * Most compatible zodiac signs for this sign. Trine partners (same element) followed by a sextile partner (complementary element).
14365
+ */
14366
+ compatibleSigns: Array<string>;
14367
+ };
14368
+ };
14369
+ export type GetAstrologyHoroscopeBySignYearlyResponse = GetAstrologyHoroscopeBySignYearlyResponses[keyof GetAstrologyHoroscopeBySignYearlyResponses];
13871
14370
  export type PostAstrologyPlanetaryReturnsData = {
13872
14371
  body?: {
13873
14372
  /**
@@ -31337,7 +31836,7 @@ export type PostChineseAstrologyBaziChartResponses = {
31337
31836
  */
31338
31837
  nameLocalized?: string;
31339
31838
  /**
31340
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
31839
+ * The relation in traditional hanzi. Identical under every lang.
31341
31840
  */
31342
31841
  chinese: string;
31343
31842
  /**
@@ -31407,7 +31906,7 @@ export type PostChineseAstrologyBaziChartResponses = {
31407
31906
  */
31408
31907
  nameLocalized?: string;
31409
31908
  /**
31410
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
31909
+ * The relation in traditional hanzi. Identical under every lang.
31411
31910
  */
31412
31911
  chinese: string;
31413
31912
  /**
@@ -31891,7 +32390,7 @@ export type PostChineseAstrologyBaziLuckPillarsResponses = {
31891
32390
  */
31892
32391
  nameLocalized?: string;
31893
32392
  /**
31894
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
32393
+ * The relation in traditional hanzi. Identical under every lang.
31895
32394
  */
31896
32395
  chinese: string;
31897
32396
  /**
@@ -31957,7 +32456,7 @@ export type PostChineseAstrologyBaziLuckPillarsResponses = {
31957
32456
  */
31958
32457
  nameLocalized?: string;
31959
32458
  /**
31960
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
32459
+ * The relation in traditional hanzi. Identical under every lang.
31961
32460
  */
31962
32461
  chinese: string;
31963
32462
  /**
@@ -32600,7 +33099,7 @@ export type PostChineseAstrologyBaziCompatibilityResponses = {
32600
33099
  */
32601
33100
  nameLocalized?: string;
32602
33101
  /**
32603
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
33102
+ * The relation in traditional hanzi. Identical under every lang.
32604
33103
  */
32605
33104
  chinese: string;
32606
33105
  /**
@@ -32670,7 +33169,7 @@ export type PostChineseAstrologyBaziCompatibilityResponses = {
32670
33169
  */
32671
33170
  nameLocalized?: string;
32672
33171
  /**
32673
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
33172
+ * The relation in traditional hanzi. Identical under every lang.
32674
33173
  */
32675
33174
  chinese: string;
32676
33175
  /**
@@ -32858,7 +33357,7 @@ export type PostChineseAstrologyBaziCompatibilityResponses = {
32858
33357
  */
32859
33358
  nameLocalized?: string;
32860
33359
  /**
32861
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
33360
+ * The relation in traditional hanzi. Identical under every lang.
32862
33361
  */
32863
33362
  chinese: string;
32864
33363
  /**
@@ -32928,7 +33427,7 @@ export type PostChineseAstrologyBaziCompatibilityResponses = {
32928
33427
  */
32929
33428
  nameLocalized?: string;
32930
33429
  /**
32931
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
33430
+ * The relation in traditional hanzi. Identical under every lang.
32932
33431
  */
32933
33432
  chinese: string;
32934
33433
  /**
@@ -33398,7 +33897,7 @@ export type PostChineseAstrologyBaziAnnualForecastResponses = {
33398
33897
  */
33399
33898
  nameLocalized?: string;
33400
33899
  /**
33401
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
33900
+ * The relation in traditional hanzi. Identical under every lang.
33402
33901
  */
33403
33902
  chinese: string;
33404
33903
  /**
@@ -33431,7 +33930,7 @@ export type PostChineseAstrologyBaziAnnualForecastResponses = {
33431
33930
  */
33432
33931
  nameLocalized?: string;
33433
33932
  /**
33434
- * The relation in simplified hanzi. Identical under every lang; the traditional forms arrive through the zh-Hant response.
33933
+ * The relation in traditional hanzi. Identical under every lang.
33435
33934
  */
33436
33935
  chinese: string;
33437
33936
  /**
@@ -33670,7 +34169,7 @@ export type GetChineseAstrologyZodiacAnimalsResponses = {
33670
34169
  */
33671
34170
  nameLocalized?: string;
33672
34171
  /**
33673
- * Simplified Chinese character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
34172
+ * Traditional hanzi character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
33674
34173
  */
33675
34174
  chinese: string;
33676
34175
  /**
@@ -33837,7 +34336,7 @@ export type GetChineseAstrologyZodiacAnimalsByIdResponses = {
33837
34336
  */
33838
34337
  nameLocalized?: string;
33839
34338
  /**
33840
- * Simplified Chinese character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
34339
+ * Traditional hanzi character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
33841
34340
  */
33842
34341
  chinese: string;
33843
34342
  /**
@@ -33947,7 +34446,7 @@ export type GetChineseAstrologyZodiacAnimalsByIdResponses = {
33947
34446
  */
33948
34447
  nameLocalized?: string;
33949
34448
  /**
33950
- * Simplified Chinese character for the related animal.
34449
+ * Traditional hanzi character for the related animal.
33951
34450
  */
33952
34451
  chinese: string;
33953
34452
  /**
@@ -33980,7 +34479,7 @@ export type GetChineseAstrologyZodiacAnimalsByIdResponses = {
33980
34479
  */
33981
34480
  nameLocalized?: string;
33982
34481
  /**
33983
- * Simplified Chinese character for the related animal.
34482
+ * Traditional hanzi character for the related animal.
33984
34483
  */
33985
34484
  chinese: string;
33986
34485
  /**
@@ -34005,7 +34504,7 @@ export type GetChineseAstrologyZodiacAnimalsByIdResponses = {
34005
34504
  */
34006
34505
  nameLocalized?: string;
34007
34506
  /**
34008
- * Simplified Chinese character for the related animal.
34507
+ * Traditional hanzi character for the related animal.
34009
34508
  */
34010
34509
  chinese: string;
34011
34510
  /**
@@ -34193,7 +34692,7 @@ export type PostChineseAstrologyZodiacSignResponses = {
34193
34692
  */
34194
34693
  nameLocalized?: string;
34195
34694
  /**
34196
- * Simplified Chinese character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
34695
+ * Traditional hanzi character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
34197
34696
  */
34198
34697
  chinese: string;
34199
34698
  /**
@@ -34411,7 +34910,7 @@ export type GetChineseAstrologyZodiacCompatibilityBySign1BySign2Responses = {
34411
34910
  */
34412
34911
  nameLocalized?: string;
34413
34912
  /**
34414
- * Simplified Chinese character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
34913
+ * Traditional hanzi character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
34415
34914
  */
34416
34915
  chinese: string;
34417
34916
  /**
@@ -34449,7 +34948,7 @@ export type GetChineseAstrologyZodiacCompatibilityBySign1BySign2Responses = {
34449
34948
  */
34450
34949
  nameLocalized?: string;
34451
34950
  /**
34452
- * Simplified Chinese character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
34951
+ * Traditional hanzi character for the animal itself, not for its Earthly Branch. Data rather than a translation, so it is identical under every lang.
34453
34952
  */
34454
34953
  chinese: string;
34455
34954
  /**
@@ -34487,7 +34986,7 @@ export type GetChineseAstrologyZodiacCompatibilityBySign1BySign2Responses = {
34487
34986
  */
34488
34987
  relationshipNameLocalized?: string;
34489
34988
  /**
34490
- * Classical name of the relation in simplified Chinese.
34989
+ * Classical name of the relation in traditional hanzi. Identical under every lang.
34491
34990
  */
34492
34991
  relationshipChinese: string;
34493
34992
  /**
@@ -34677,7 +35176,7 @@ export type GetChineseAstrologyZodiacByIdDailyResponses = {
34677
35176
  */
34678
35177
  nameLocalized?: string;
34679
35178
  /**
34680
- * Simplified Chinese character for the animal.
35179
+ * Traditional hanzi character for the animal. Identical under every lang.
34681
35180
  */
34682
35181
  chinese: string;
34683
35182
  /**
@@ -35421,7 +35920,7 @@ export type GetChineseAstrologyCalendarDayByDateResponses = {
35421
35920
  */
35422
35921
  nameLocalized?: string;
35423
35922
  /**
35424
- * English display name of the officer.
35923
+ * English display name of the officer. Canonical, identical in every language, so it stays safe to compare against in code. The translation is in nameLocalized.
35425
35924
  */
35426
35925
  name: string;
35427
35926
  /**
@@ -35447,9 +35946,13 @@ export type GetChineseAstrologyCalendarDayByDateResponses = {
35447
35946
  */
35448
35947
  number: number;
35449
35948
  /**
35450
- * English display name of the mansion.
35949
+ * English display name of the mansion. Canonical, identical in every language. The translation is in nameLocalized. Note the mansion has no string id: number is the stable 1 to 28 key, because five of the 28 share a pinyin spelling.
35451
35950
  */
35452
35951
  name: string;
35952
+ /**
35953
+ * Display name of the mansion in the requested language. Absent when lang is en, and absent when a language has no entry for this mansion, so a caller falls back to name rather than rendering a blank.
35954
+ */
35955
+ nameLocalized?: string;
35453
35956
  /**
35454
35957
  * The mansion in Chinese. A data field, identical in every language.
35455
35958
  */
@@ -35467,9 +35970,13 @@ export type GetChineseAstrologyCalendarDayByDateResponses = {
35467
35970
  */
35468
35971
  planet: string;
35469
35972
  /**
35470
- * Animal emblem of the mansion, the third character of its full Chinese name.
35973
+ * Animal emblem of the mansion, the third character of its full Chinese name. English and canonical, identical in every language, matching how clashAnimal behaves on the same response. The translation is in animalLocalized.
35471
35974
  */
35472
35975
  animal: string;
35976
+ /**
35977
+ * Animal emblem in the requested language. Absent when lang is en, and absent when a language has no entry, so a caller falls back to animal.
35978
+ */
35979
+ animalLocalized?: string;
35473
35980
  };
35474
35981
  /**
35475
35982
  * The zodiac animal the day clashes with, which is the animal six branches away from the day branch. Anyone born in that animal year traditionally avoids the day for anything important.
@@ -35790,7 +36297,7 @@ export type GetChineseAstrologyCalendarMonthlyResponses = {
35790
36297
  */
35791
36298
  nameLocalized?: string;
35792
36299
  /**
35793
- * English display name of the officer.
36300
+ * English display name of the officer. Canonical, identical in every language, so it stays safe to compare against in code. The translation is in nameLocalized.
35794
36301
  */
35795
36302
  name: string;
35796
36303
  /**
@@ -35816,9 +36323,13 @@ export type GetChineseAstrologyCalendarMonthlyResponses = {
35816
36323
  */
35817
36324
  number: number;
35818
36325
  /**
35819
- * English display name of the mansion.
36326
+ * English display name of the mansion. Canonical, identical in every language. The translation is in nameLocalized. Note the mansion has no string id: number is the stable 1 to 28 key, because five of the 28 share a pinyin spelling.
35820
36327
  */
35821
36328
  name: string;
36329
+ /**
36330
+ * Display name of the mansion in the requested language. Absent when lang is en, and absent when a language has no entry for this mansion, so a caller falls back to name rather than rendering a blank.
36331
+ */
36332
+ nameLocalized?: string;
35822
36333
  /**
35823
36334
  * The mansion in Chinese. A data field, identical in every language.
35824
36335
  */
@@ -35836,9 +36347,13 @@ export type GetChineseAstrologyCalendarMonthlyResponses = {
35836
36347
  */
35837
36348
  planet: string;
35838
36349
  /**
35839
- * Animal emblem of the mansion, the third character of its full Chinese name.
36350
+ * Animal emblem of the mansion, the third character of its full Chinese name. English and canonical, identical in every language, matching how clashAnimal behaves on the same response. The translation is in animalLocalized.
35840
36351
  */
35841
36352
  animal: string;
36353
+ /**
36354
+ * Animal emblem in the requested language. Absent when lang is en, and absent when a language has no entry, so a caller falls back to animal.
36355
+ */
36356
+ animalLocalized?: string;
35842
36357
  };
35843
36358
  /**
35844
36359
  * The zodiac animal the day clashes with, which is the animal six branches away from the day branch. Anyone born in that animal year traditionally avoids the day for anything important.
@@ -36163,7 +36678,7 @@ export type PostChineseAstrologyCalendarAuspiciousDaysResponses = {
36163
36678
  */
36164
36679
  nameLocalized?: string;
36165
36680
  /**
36166
- * English display name of the officer.
36681
+ * English display name of the officer. Canonical, identical in every language, so it stays safe to compare against in code. The translation is in nameLocalized.
36167
36682
  */
36168
36683
  name: string;
36169
36684
  /**
@@ -36189,9 +36704,13 @@ export type PostChineseAstrologyCalendarAuspiciousDaysResponses = {
36189
36704
  */
36190
36705
  number: number;
36191
36706
  /**
36192
- * English display name of the mansion.
36707
+ * English display name of the mansion. Canonical, identical in every language. The translation is in nameLocalized. Note the mansion has no string id: number is the stable 1 to 28 key, because five of the 28 share a pinyin spelling.
36193
36708
  */
36194
36709
  name: string;
36710
+ /**
36711
+ * Display name of the mansion in the requested language. Absent when lang is en, and absent when a language has no entry for this mansion, so a caller falls back to name rather than rendering a blank.
36712
+ */
36713
+ nameLocalized?: string;
36195
36714
  /**
36196
36715
  * The mansion in Chinese. A data field, identical in every language.
36197
36716
  */
@@ -36209,9 +36728,13 @@ export type PostChineseAstrologyCalendarAuspiciousDaysResponses = {
36209
36728
  */
36210
36729
  planet: string;
36211
36730
  /**
36212
- * Animal emblem of the mansion, the third character of its full Chinese name.
36731
+ * Animal emblem of the mansion, the third character of its full Chinese name. English and canonical, identical in every language, matching how clashAnimal behaves on the same response. The translation is in animalLocalized.
36213
36732
  */
36214
36733
  animal: string;
36734
+ /**
36735
+ * Animal emblem in the requested language. Absent when lang is en, and absent when a language has no entry, so a caller falls back to animal.
36736
+ */
36737
+ animalLocalized?: string;
36215
36738
  };
36216
36739
  /**
36217
36740
  * The zodiac animal the day clashes with, which is the animal six branches away from the day branch. Anyone born in that animal year traditionally avoids the day for anything important.
@@ -37442,7 +37965,7 @@ export type PostFengShuiFlyingStarsNatalResponses = {
37442
37965
  */
37443
37966
  id: string;
37444
37967
  /**
37445
- * Display name of the structure. Always English, whatever the lang parameter says.
37968
+ * Display name of the structure, TRANSLATED IN PLACE under the lang parameter. Switch on structure.id, which is the stable machine value in every language. Unlike the star and formation names beside it, this field has no nameLocalized sibling.
37446
37969
  */
37447
37970
  name: string;
37448
37971
  /**
@@ -38235,7 +38758,11 @@ export type GetFengShuiAfflictionsByYearResponses = {
38235
38758
  */
38236
38759
  taiSui: {
38237
38760
  /**
38238
- * Display name of the affliction. Always English, whatever the lang parameter says, so it stays safe to compare against in code.
38761
+ * Stable machine key for the affliction: taiSui, suiPo, sanSha or fiveYellow. Always English, identical in every language, and the field to branch on. Use this rather than name, which is display copy and does translate.
38762
+ */
38763
+ id: string;
38764
+ /**
38765
+ * Display name of the affliction, translated in place when lang is set (Tai Sui in English, 太岁 under zh-Hans). Display copy, never a comparison key: branch on id instead.
38239
38766
  */
38240
38767
  name: string;
38241
38768
  /**
@@ -38306,7 +38833,11 @@ export type GetFengShuiAfflictionsByYearResponses = {
38306
38833
  */
38307
38834
  suiPo: {
38308
38835
  /**
38309
- * Display name of the affliction. Always English, whatever the lang parameter says, so it stays safe to compare against in code.
38836
+ * Stable machine key for the affliction: taiSui, suiPo, sanSha or fiveYellow. Always English, identical in every language, and the field to branch on. Use this rather than name, which is display copy and does translate.
38837
+ */
38838
+ id: string;
38839
+ /**
38840
+ * Display name of the affliction, translated in place when lang is set (Tai Sui in English, 太岁 under zh-Hans). Display copy, never a comparison key: branch on id instead.
38310
38841
  */
38311
38842
  name: string;
38312
38843
  /**
@@ -38369,7 +38900,11 @@ export type GetFengShuiAfflictionsByYearResponses = {
38369
38900
  */
38370
38901
  sanSha: {
38371
38902
  /**
38372
- * Display name of the affliction. Always English, whatever the lang parameter says, so it stays safe to compare against in code.
38903
+ * Stable machine key for the affliction: taiSui, suiPo, sanSha or fiveYellow. Always English, identical in every language, and the field to branch on. Use this rather than name, which is display copy and does translate.
38904
+ */
38905
+ id: string;
38906
+ /**
38907
+ * Display name of the affliction, translated in place when lang is set (Tai Sui in English, 太岁 under zh-Hans). Display copy, never a comparison key: branch on id instead.
38373
38908
  */
38374
38909
  name: string;
38375
38910
  /**
@@ -38413,7 +38948,7 @@ export type GetFengShuiAfflictionsByYearResponses = {
38413
38948
  */
38414
38949
  id: string;
38415
38950
  /**
38416
- * Display name of the part. Always English, whatever the lang parameter says.
38951
+ * Display name of the part, translated in place when lang is set. Display copy, never a comparison key: branch on id instead.
38417
38952
  */
38418
38953
  name: string;
38419
38954
  /**
@@ -38473,7 +39008,11 @@ export type GetFengShuiAfflictionsByYearResponses = {
38473
39008
  */
38474
39009
  fiveYellow: {
38475
39010
  /**
38476
- * Display name of the affliction. Always English, whatever the lang parameter says, so it stays safe to compare against in code.
39011
+ * Stable machine key for the affliction: taiSui, suiPo, sanSha or fiveYellow. Always English, identical in every language, and the field to branch on. Use this rather than name, which is display copy and does translate.
39012
+ */
39013
+ id: string;
39014
+ /**
39015
+ * Display name of the affliction, translated in place when lang is set (Tai Sui in English, 太岁 under zh-Hans). Display copy, never a comparison key: branch on id instead.
38477
39016
  */
38478
39017
  name: string;
38479
39018
  /**