Astrologer GPT

Astrologer GPT · Actions GPT

Astrology API - Basic Astrology

Core charts: natal, synastry, composite, natal-transits, lunar-analysis

  • POST /api/v3/charts/natalChart Natal

    🗺️ **Complete Natal Chart Generator** - Full birth chart analysis **Perfect for:** - 🎯 Professional astrological consultations - 📱 Comprehensive astrology apps - 📊 Complete personality analysis - 🎓 Educational astrology tools **What you get:** - **All planetary positions** with houses and signs...

  • POST /api/v3/charts/synastrySynastry (two charts dialogue)

    💬 **Synastry: Dialogue Between Two Charts** - How two people influence each other **What this is:** Comparison of two **separate** natal charts. Shows how one person's planets interact with another person's planets (cross-aspects). Answers the question: **"How do WE affect each other?"** **vs /...

  • POST /api/v3/charts/compositeComposite (relationship as entity)

    👶 **Composite: The Third Entity** - The relationship itself as a separate chart **What this is:** Creates a **new chart** from mathematical midpoints between both people's planets. This is the chart of the relationship itself — a "third entity" born from two people. Answers the question: **"What...

  • POST /api/v3/charts/natal-transitsTransit Period Analysis (date range)

    📅 **Transit Period Analysis** - All transits over a date range with exact timing **What this is:** Analyzes all transits over a **date range** with calculation of exact aspect times. Answers the question: **"What transits await me in March?"** **Input:** Natal data + date_range (start_date → en...

  • POST /api/v3/analysis/lunar-analysisGet Lunar Analysis

    🌙 **Detailed Lunar Analysis** - Comprehensive Moon phase and cycle interpretation **Perfect for:** - 🌙 Understanding emotional cycles and patterns - 📅 Lunar timing for important decisions - 🎯 Electional astrology and optimal timing - 📊 Feminine cycles and natural rhythms **What you get:** - **C...

Schéma original API
{
  "openapi": "3.1.0",
  "info": {
    "title": "Astrology API - Basic Astrology",
    "description": "Core charts: natal, synastry, composite, natal-transits, lunar-analysis",
    "version": "3.2.10"
  },
  "paths": {
    "/api/v3/charts/natal": {
      "post": {
        "tags": [
          "🗺️ Chart Data & Analysis"
        ],
        "summary": "Chart Natal",
        "description": "🗺️ **Complete Natal Chart Generator** - Full birth chart analysis\n\n**Perfect for:**\n- 🎯 Professional astrological consultations\n- 📱 Comprehensive astrology apps\n- 📊 Complete personality analysis\n- 🎓 Educational astrology tools\n\n**What you get:**\n- **All planetary positions** with houses and signs...",
        "operationId": "chart_natal",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NatalChartRequest"
              },
              "examples": {
                "basic_chart": {
                  "summary": "Basic Natal Chart - London",
                  "description": "Standard natal chart with Placidus houses and main planets",
                  "value": {
                    "subject": {
                      "name": "Emma Johnson",
                      "birth_data": {
                        "year": 1990,
                        "month": 5,
                        "day": 15,
                        "hour": 14,
                        "minute": 30,
                        "second": 0,
                        "city": "London",
                        "country_code": "GB"
                      }
                    },
                    "options": {
                      "house_system": "P",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn"
                      ],
                      "precision": 2
                    }
                  }
                },
                "traditional_whole_sign": {
                  "summary": "Traditional - Whole Sign Houses",
                  "description": "Traditional astrology setup with Whole Sign houses and extended points",
                  "value": {
                    "subject": {
                      "name": "Marcus Aurelius",
                      "birth_data": {
                        "year": 1985,
                        "month": 8,
                        "day": 22,
                        "hour": 18,
                        "minute": 45,
                        "second": 0,
                        "city": "Paris",
                        "country_code": "FR"
                      }
                    },
                    "options": {
                      "house_system": "W",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Mean_Node",
                        "True_Node",
                        "Part_of_Fortune",
                        "Part_of_Spirit"
                      ],
                      "precision": 4
                    }
                  }
                },
                "modern_extended": {
                  "summary": "Modern Extended Chart",
                  "description": "Modern astrology with outer planets, asteroids, and high precision",
                  "value": {
                    "subject": {
                      "name": "Sophia Chen",
                      "birth_data": {
                        "year": 1992,
                        "month": 11,
                        "day": 8,
                        "hour": 9,
                        "minute": 15,
                        "second": 30,
                        "latitude": 35.6762,
                        "longitude": 139.6503
                      }
                    },
                    "options": {
                      "house_system": "K",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Uranus",
                        "Neptune",
                        "Pluto",
                        "Chiron",
                        "Ceres",
                        "Pallas",
                        "Juno",
                        "Vesta",
                        "Mean_Lilith",
                        "True_Lilith"
                      ],
                      "precision": 6
                    }
                  }
                },
                "sidereal_vedic": {
                  "summary": "Sidereal/Vedic Approach",
                  "description": "Sidereal zodiac calculation with Equal houses (Vedic style)",
                  "value": {
                    "subject": {
                      "name": "Arjun Patel",
                      "birth_data": {
                        "year": 1988,
                        "month": 3,
                        "day": 25,
                        "hour": 12,
                        "minute": 0,
                        "second": 0,
                        "city": "Mumbai",
                        "country_code": "IN"
                      }
                    },
                    "options": {
                      "house_system": "A",
                      "zodiac_type": "Sidereal",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Mean_Node",
                        "True_Node"
                      ],
                      "precision": 3
                    }
                  }
                },
                "fixed_stars": {
                  "summary": "Fixed Stars Analysis",
                  "description": "Chart focused on fixed star conjunctions with royal stars",
                  "value": {
                    "subject": {
                      "name": "Stella Maris",
                      "birth_data": {
                        "year": 1987,
                        "month": 7,
                        "day": 4,
                        "hour": 16,
                        "minute": 20,
                        "second": 0,
                        "city": "Sydney",
                        "country_code": "AU"
                      }
                    },
                    "options": {
                      "house_system": "R",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Aldebaran",
                        "Regulus",
                        "Antares",
                        "Fomalhaut",
                        "Sirius",
                        "Spica"
                      ],
                      "precision": 4
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful natal chart calculation with complete planetary positions, house cusps, and aspects",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatalChartResponse"
                },
                "examples": {
                  "successful_response": {
                    "summary": "Successful chart calculation response",
                    "description": "Complete chart data with all requested calculations",
                    "value": {
                      "subject_data": {
                        "name": "Emma Johnson",
                        "year": 1990,
                        "month": 5,
                        "day": 15,
                        "hour": 14,
                        "minute": 30,
                        "city": "London",
                        "nation": "GB",
                        "lng": -0.1278,
                        "lat": 51.5074,
                        "tz_str": "Europe/London",
                        "sun": {
                          "name": "Sun",
                          "quality": "Fixed",
                          "element": "Earth",
                          "sign": "Tau",
                          "sign_num": 1,
                          "position": 24.83,
                          "abs_pos": 54.83,
                          "emoji": "♉️",
                          "point_type": "Planet",
                          "house": "Tenth_House",
                          "retrograde": false
                        },
                        "moon": {
                          "name": "Moon",
                          "quality": "Fixed",
                          "element": "Water",
                          "sign": "Sco",
                          "sign_num": 7,
                          "position": 12.45,
                          "abs_pos": 222.45,
                          "emoji": "♏️",
                          "point_type": "Planet",
                          "house": "Fourth_House",
                          "retrograde": false
                        },
                        "mercury": {
                          "name": "Mercury",
                          "quality": "Mutable",
                          "element": "Air",
                          "sign": "Gem",
                          "sign_num": 2,
                          "position": 8.91,
                          "abs_pos": 68.91,
                          "emoji": "♊️",
                          "point_type": "Planet",
                          "house": "Eleventh_House",
                          "retrograde": false
                        },
                        "venus": {
                          "name": "Venus",
                          "quality": "Cardinal",
                          "element": "Fire",
                          "sign": "Ari",
                          "sign_num": 0,
                          "position": 2.67,
                          "abs_pos": 2.67,
                          "emoji": "♈️",
                          "point_type": "Planet",
                          "house": "Eighth_House",
                          "retrograde": false
                        },
                        "mars": {
                          "name": "Mars",
                          "quality": "Fixed",
                          "element": "Air",
                          "sign": "Aqu",
                          "sign_num": 10,
                          "position": 19.23,
                          "abs_pos": 319.23,
                          "emoji": "♒️",
                          "point_type": "Planet",
                          "house": "Seventh_House",
                          "retrograde": false
                        },
                        "jupiter": {
                          "name": "Jupiter",
                          "quality": "Cardinal",
                          "element": "Water",
                          "sign": "Can",
                          "sign_num": 3,
                          "position": 15.78,
                          "abs_pos": 105.78,
                          "emoji": "♋️",
                          "point_type": "Planet",
                          "house": "Twelfth_House",
                          "retrograde": false
                        },
                        "saturn": {
                          "name": "Saturn",
                          "quality": "Cardinal",
                          "element": "Earth",
                          "sign": "Cap",
                          "sign_num": 9,
                          "position": 28.34,
                          "abs_pos": 298.34,
                          "emoji": "♑️",
                          "point_type": "Planet",
                          "house": "Sixth_House",
                          "retrograde": false
                        }
                      },
                      "chart_data": {
                        "planetary_positions": [
                          {
                            "name": "Sun",
                            "sign": "Tau",
                            "degree": 24.83,
                            "absolute_longitude": 54.83,
                            "house": 10,
                            "is_retrograde": false,
                            "speed": 0.958
                          },
                          {
                            "name": "Moon",
                            "sign": "Sco",
                            "degree": 12.45,
                            "absolute_longitude": 222.45,
                            "house": 4,
                            "is_retrograde": false,
                            "speed": 13.156
                          },
                          {
                            "name": "Mercury",
                            "sign": "Gem",
                            "degree": 8.91,
                            "absolute_longitude": 68.91,
                            "house": 11,
                            "is_retrograde": false,
                            "speed": 1.234
                          },
                          {
                            "name": "Venus",
                            "sign": "Ari",
                            "degree": 2.67,
                            "absolute_longitude": 2.67,
                            "house": 8,
                            "is_retrograde": false,
                            "speed": 1.156
                          },
                          {
                            "name": "Mars",
                            "sign": "Aqu",
                            "degree": 19.23,
                            "absolute_longitude": 319.23,
                            "house": 7,
                            "is_retrograde": false,
                            "speed": 0.624
                          },
                          {
                            "name": "Jupiter",
                            "sign": "Can",
                            "degree": 15.78,
                            "absolute_longitude": 105.78,
                            "house": 12,
                            "is_retrograde": false,
                            "speed": 0.089
                          },
                          {
                            "name": "Saturn",
                            "sign": "Cap",
                            "degree": 28.34,
                            "absolute_longitude": 298.34,
                            "house": 6,
                            "is_retrograde": false,
                            "speed": 0.034
                          },
                          {
                            "name": "Ascendant",
                            "sign": "Leo",
                            "degree": 5.12,
                            "absolute_longitude": 125.12,
                            "house": 1,
                            "is_retrograde": false
                          },
                          {
                            "name": "Medium_Coeli",
                            "sign": "Ari",
                            "degree": 28.89,
                            "absolute_longitude": 28.89,
                            "house": 10,
                            "is_retrograde": false
                          }
                        ],
                        "house_cusps": [
                          {
                            "house": 1,
                            "sign": "Leo",
                            "degree": 5.12
                          },
                          {
                            "house": 2,
                            "sign": "Vir",
                            "degree": 2.45
                          },
                          {
                            "house": 3,
                            "sign": "Lib",
                            "degree": 8.23
                          },
                          {
                            "house": 4,
                            "sign": "Sco",
                            "degree": 18.89
                          },
                          {
                            "house": 5,
                            "sign": "Sag",
                            "degree": 24.67
                          },
                          {
                            "house": 6,
                            "sign": "Cap",
                            "degree": 22.12
                          },
                          {
                            "house": 7,
                            "sign": "Aqu",
                            "degree": 5.12
                          },
                          {
                            "house": 8,
                            "sign": "Pis",
                            "degree": 2.45
                          },
                          {
                            "house": 9,
                            "sign": "Ari",
                            "degree": 8.23
                          },
                          {
                            "house": 10,
                            "sign": "Tau",
                            "degree": 18.89
                          },
                          {
                            "house": 11,
                            "sign": "Gem",
                            "degree": 24.67
                          },
                          {
                            "house": 12,
                            "sign": "Can",
                            "degree": 22.12
                          }
                        ],
                        "aspects": [
                          {
                            "point1": "Sun",
                            "point2": "Moon",
                            "aspect_type": "opposition",
                            "orb": 2.38
                          },
                          {
                            "point1": "Sun",
                            "point2": "Jupiter",
                            "aspect_type": "trine",
                            "orb": 0.95
                          },
                          {
                            "point1": "Moon",
                            "point2": "Mars",
                            "aspect_type": "square",
                            "orb": 3.22
                          },
                          {
                            "point1": "Venus",
                            "point2": "Saturn",
                            "aspect_type": "square",
                            "orb": 4.33
                          },
                          {
                            "point1": "Mercury",
                            "point2": "Ascendant",
                            "aspect_type": "sextile",
                            "orb": 3.79
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid chart parameters"
          },
          "422": {
            "description": "Validation error - check subject data"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL + jq",
            "source": "curl -X POST \"https://astro-api.procoders.pro/api/v3/charts/natal\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"subject\": {\"name\": \"John Doe\", \"birth_data\": {\"year\": 1990, \"month\": 5, \"day\": 15, \"hour\": 14, \"minute\": 30, \"city\": \"London\", \"country_code\": \"GB\"}}, \"options\": {\"house_system\": \"P\", \"zodiac_type\": \"Tropic\", \"active_points\": [\"Sun\", \"Moon\", \"Mercury\", \"Venus\", \"Mars\", \"Jupiter\", \"Saturn\"], \"precision\": 2}}' \\\n     | jq ."
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript + fetch",
            "source": "// Using fetch API (Node.js 18+ or browser)\nconst url = \"https://astro-api.procoders.pro/api/v3/charts/natal\";\n\nconst data = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"zodiac_type\": \"Tropic\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\",\n      \"Jupiter\",\n      \"Saturn\"\n    ],\n    \"precision\": 2\n  }\n};\n\ntry {\n    const response = await fetch(url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/json'\n        },\n        body: JSON.stringify(data)\n    });\n    \n    const result = await response.json();\n    \n    if (response.ok) {\n        console.log('✅ Success:', result);\n    } else {\n        console.error('❌ Error:', response.status, result);\n    }\n} catch (error) {\n    console.error('❌ Network error:', error);\n}"
          },
          {
            "lang": "JavaScript",
            "label": "Node.js + axios",
            "source": "// Using axios library\nconst axios = require('axios');\n\nconst url = \"https://astro-api.procoders.pro/api/v3/charts/natal\";\nconst data = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"zodiac_type\": \"Tropic\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\",\n      \"Jupiter\",\n      \"Saturn\"\n    ],\n    \"precision\": 2\n  }\n};\n\naxios.post(url, data)\n    .then(response => {\n        console.log('✅ Success:', response.data);\n    })\n    .catch(error => {\n        if (error.response) {\n            console.error('❌ Error:', error.response.status, error.response.data);\n        } else {\n            console.error('❌ Network error:', error.message);\n        }\n    });"
          },
          {
            "lang": "Python",
            "label": "Python + requests",
            "source": "import requests\nimport json\n\n# API endpoint\nurl = \"https://astro-api.procoders.pro/api/v3/charts/natal\"\n\n# Request data\ndata = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"zodiac_type\": \"Tropic\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\",\n      \"Jupiter\",\n      \"Saturn\"\n    ],\n    \"precision\": 2\n  }\n}\n\n# Make the request\nresponse = requests.post(\n    url,\n    headers={\"Content-Type\": \"application/json\"},\n    json=data\n)\n\n# Handle response\nif response.status_code == 200:\n    result = response.json()\n    print(\"✅ Success!\")\n    print(json.dumps(result, indent=2))\nelse:\n    print(f\"❌ Error: {response.status_code}\")\n    print(response.text)"
          },
          {
            "lang": "PHP",
            "label": "PHP + cURL",
            "source": "<?php\n$url = \"https://astro-api.procoders.pro/api/v3/charts/natal\";\n$data = {\n    \"subject\": {\n        \"name\": \"John Doe\",\n        \"birth_data\": {\n            \"year\": 1990,\n            \"month\": 5,\n            \"day\": 15,\n            \"hour\": 14,\n            \"minute\": 30,\n            \"city\": \"London\",\n            \"country_code\": \"GB\"\n        }\n    },\n    \"options\": {\n        \"house_system\": \"P\",\n        \"zodiac_type\": \"Tropic\",\n        \"active_points\": [\n            \"Sun\",\n            \"Moon\",\n            \"Mercury\",\n            \"Venus\",\n            \"Mars\",\n            \"Jupiter\",\n            \"Saturn\"\n        ],\n        \"precision\": 2\n    }\n};\n\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n$response = curl_exec($ch);\n$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\ncurl_close($ch);\n\nif ($httpCode === 200) {\n    $result = json_decode($response, true);\n    echo \"✅ Success!\\n\";\n    echo json_encode($result, JSON_PRETTY_PRINT);\n} else {\n    echo \"❌ Error: $httpCode\\n\";\n    echo $response;\n}\n?>"
          },
          {
            "lang": "Go",
            "label": "Go + net/http",
            "source": "package main\n\nimport (\n    \"bytes\"\n    \"encoding/json\"\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    url := \"https://astro-api.procoders.pro/api/v3/charts/natal\"\n    \n    data := map[string]interface{}{\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"zodiac_type\": \"Tropic\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\",\n      \"Jupiter\",\n      \"Saturn\"\n    ],\n    \"precision\": 2\n  }\n}\n    \n    jsonData, err := json.Marshal(data)\n    if err != nil {\n        fmt.Printf(\"❌ Error marshaling JSON: %v\\n\", err)\n        return\n    }\n    \n    resp, err := http.Post(url, \"application/json\", bytes.NewBuffer(jsonData))\n    if err != nil {\n        fmt.Printf(\"❌ Error making request: %v\\n\", err)\n        return\n    }\n    defer resp.Body.Close()\n    \n    body, err := io.ReadAll(resp.Body)\n    if err != nil {\n        fmt.Printf(\"❌ Error reading response: %v\\n\", err)\n        return\n    }\n    \n    if resp.StatusCode == 200 {\n        fmt.Println(\"✅ Success!\")\n        var result map[string]interface{}\n        json.Unmarshal(body, &result)\n        prettyJSON, _ := json.MarshalIndent(result, \"\", \"  \")\n        fmt.Println(string(prettyJSON))\n    } else {\n        fmt.Printf(\"❌ Error: %d\\n\", resp.StatusCode)\n        fmt.Println(string(body))\n    }\n}"
          }
        ]
      }
    },
    "/api/v3/charts/synastry": {
      "post": {
        "tags": [
          "🗺️ Chart Data & Analysis"
        ],
        "summary": "Synastry (two charts dialogue)",
        "description": "💬 **Synastry: Dialogue Between Two Charts** - How two people influence each other\n\n**What this is:**\nComparison of two **separate** natal charts. Shows how one person's planets\ninteract with another person's planets (cross-aspects).\nAnswers the question: **\"How do WE affect each other?\"**\n\n**vs /...",
        "operationId": "get_synastry_chart_api_v3_charts_synastry_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SynastryChartRequest"
              },
              "examples": {
                "romantic_compatibility": {
                  "summary": "Romantic Compatibility",
                  "description": "Love relationship analysis between partners from different countries",
                  "value": {
                    "subject1": {
                      "name": "Isabella Garcia",
                      "birth_data": {
                        "year": 1990,
                        "month": 6,
                        "day": 15,
                        "hour": 14,
                        "minute": 30,
                        "second": 0,
                        "city": "Madrid",
                        "country_code": "ES"
                      }
                    },
                    "subject2": {
                      "name": "James Anderson",
                      "birth_data": {
                        "year": 1988,
                        "month": 9,
                        "day": 22,
                        "hour": 18,
                        "minute": 45,
                        "second": 0,
                        "city": "London",
                        "country_code": "GB"
                      }
                    },
                    "options": {
                      "house_system": "P",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Chiron"
                      ],
                      "precision": 2
                    }
                  }
                },
                "business_partnership": {
                  "summary": "Business Partnership Analysis",
                  "description": "Professional compatibility using coordinates and extended points",
                  "value": {
                    "subject1": {
                      "name": "Sarah Kim",
                      "birth_data": {
                        "year": 1985,
                        "month": 3,
                        "day": 10,
                        "hour": 9,
                        "minute": 15,
                        "second": 0,
                        "latitude": 37.5665,
                        "longitude": 126.978
                      }
                    },
                    "subject2": {
                      "name": "David Mueller",
                      "birth_data": {
                        "year": 1987,
                        "month": 11,
                        "day": 5,
                        "hour": 16,
                        "minute": 20,
                        "second": 0,
                        "latitude": 52.52,
                        "longitude": 13.405
                      }
                    },
                    "options": {
                      "house_system": "W",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Uranus",
                        "Neptune",
                        "Pluto",
                        "Mean_Node",
                        "True_Node"
                      ],
                      "precision": 4
                    }
                  }
                },
                "karmic_connection": {
                  "summary": "Karmic Connection Analysis",
                  "description": "Soul connection focus with nodes, Lilith, and spiritual points",
                  "value": {
                    "subject1": {
                      "name": "Luna Mystica",
                      "birth_data": {
                        "year": 1992,
                        "month": 12,
                        "day": 21,
                        "hour": 0,
                        "minute": 0,
                        "second": 0,
                        "city": "Glastonbury",
                        "country_code": "GB"
                      }
                    },
                    "subject2": {
                      "name": "Phoenix Rising",
                      "birth_data": {
                        "year": 1989,
                        "month": 8,
                        "day": 8,
                        "hour": 8,
                        "minute": 8,
                        "second": 8,
                        "city": "Sedona",
                        "country_code": "US"
                      }
                    },
                    "options": {
                      "house_system": "A",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Mean_Node",
                        "True_Node",
                        "Mean_South_Node",
                        "True_South_Node",
                        "Mean_Lilith",
                        "True_Lilith",
                        "Chiron",
                        "Part_of_Fortune"
                      ],
                      "precision": 3
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful synastry chart calculation with cross-aspects between both people's charts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynastryChartResponse"
                },
                "examples": {
                  "successful_response": {
                    "summary": "Successful chart calculation response",
                    "description": "Complete chart data with all requested calculations",
                    "value": {
                      "subject_data": {
                        "subject1": {
                          "name": "Isabella Garcia",
                          "year": 1990,
                          "month": 6,
                          "day": 15,
                          "hour": 14,
                          "minute": 30,
                          "city": "Madrid",
                          "nation": "ES",
                          "lng": -3.7038,
                          "lat": 40.4168,
                          "tz_str": "Europe/Madrid"
                        },
                        "subject2": {
                          "name": "James Anderson",
                          "year": 1988,
                          "month": 9,
                          "day": 22,
                          "hour": 18,
                          "minute": 45,
                          "city": "London",
                          "nation": "GB",
                          "lng": -0.1278,
                          "lat": 51.5074,
                          "tz_str": "Europe/London"
                        }
                      },
                      "chart_data": {
                        "planetary_positions": [
                          {
                            "name": "Sun_1",
                            "sign": "Gem",
                            "degree": 24.15,
                            "absolute_longitude": 84.15,
                            "house": 9,
                            "is_retrograde": false,
                            "speed": 0.958
                          },
                          {
                            "name": "Sun_2",
                            "sign": "Vir",
                            "degree": 29.82,
                            "absolute_longitude": 149.82,
                            "house": 2,
                            "is_retrograde": false,
                            "speed": 0.958
                          },
                          {
                            "name": "Venus_1",
                            "sign": "Tau",
                            "degree": 8.45,
                            "absolute_longitude": 38.45,
                            "house": 7,
                            "is_retrograde": false,
                            "speed": 1.202
                          },
                          {
                            "name": "Mars_2",
                            "sign": "Sco",
                            "degree": 12.78,
                            "absolute_longitude": 222.78,
                            "house": 4,
                            "is_retrograde": false,
                            "speed": 0.634
                          }
                        ],
                        "house_cusps": [
                          {
                            "house": 1,
                            "sign": "Cap",
                            "degree": 15.23
                          },
                          {
                            "house": 2,
                            "sign": "Aqu",
                            "degree": 12.45
                          },
                          {
                            "house": 3,
                            "sign": "Pis",
                            "degree": 18.67
                          },
                          {
                            "house": 4,
                            "sign": "Ari",
                            "degree": 25.89
                          },
                          {
                            "house": 5,
                            "sign": "Tau",
                            "degree": 28.12
                          },
                          {
                            "house": 6,
                            "sign": "Gem",
                            "degree": 24.34
                          },
                          {
                            "house": 7,
                            "sign": "Can",
                            "degree": 15.23
                          },
                          {
                            "house": 8,
                            "sign": "Leo",
                            "degree": 12.45
                          },
                          {
                            "house": 9,
                            "sign": "Vir",
                            "degree": 18.67
                          },
                          {
                            "house": 10,
                            "sign": "Lib",
                            "degree": 25.89
                          },
                          {
                            "house": 11,
                            "sign": "Sco",
                            "degree": 28.12
                          },
                          {
                            "house": 12,
                            "sign": "Sag",
                            "degree": 24.34
                          }
                        ],
                        "aspects": [
                          {
                            "point1": "Sun_1",
                            "point2": "Sun_2",
                            "aspect_type": "square",
                            "orb": 5.67
                          },
                          {
                            "point1": "Venus_1",
                            "point2": "Mars_2",
                            "aspect_type": "opposition",
                            "orb": 4.33
                          },
                          {
                            "point1": "Moon_1",
                            "point2": "Venus_2",
                            "aspect_type": "trine",
                            "orb": 2.15
                          },
                          {
                            "point1": "Mercury_1",
                            "point2": "Mercury_2",
                            "aspect_type": "sextile",
                            "orb": 1.89
                          },
                          {
                            "point1": "Jupiter_1",
                            "point2": "Ascendant_2",
                            "aspect_type": "conjunction",
                            "orb": 0.75
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid chart parameters"
          },
          "422": {
            "description": "Validation error - check subject data"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL + jq",
            "source": "curl -X POST \"https://astro-api.procoders.pro/api/v3/charts/synastry\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"person1\": {\"name\": \"Alice\", \"birth_data\": {\"year\": 1990, \"month\": 5, \"day\": 15, \"hour\": 14, \"minute\": 30, \"city\": \"Paris\", \"country_code\": \"FR\"}}, \"person2\": {\"name\": \"Bob\", \"birth_data\": {\"year\": 1988, \"month\": 8, \"day\": 22, \"hour\": 18, \"minute\": 45, \"city\": \"Lisbon\", \"country_code\": \"PT\"}}, \"options\": {\"house_system\": \"P\", \"orb_set\": \"tight\"}}' \\\n     | jq ."
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript + fetch",
            "source": "// Using fetch API (Node.js 18+ or browser)\nconst url = \"https://astro-api.procoders.pro/api/v3/charts/synastry\";\n\nconst data = {\n  \"person1\": {\n    \"name\": \"Alice\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"Paris\",\n      \"country_code\": \"FR\"\n    }\n  },\n  \"person2\": {\n    \"name\": \"Bob\",\n    \"birth_data\": {\n      \"year\": 1988,\n      \"month\": 8,\n      \"day\": 22,\n      \"hour\": 18,\n      \"minute\": 45,\n      \"city\": \"Lisbon\",\n      \"country_code\": \"PT\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"orb_set\": \"tight\"\n  }\n};\n\ntry {\n    const response = await fetch(url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/json'\n        },\n        body: JSON.stringify(data)\n    });\n    \n    const result = await response.json();\n    \n    if (response.ok) {\n        console.log('✅ Success:', result);\n    } else {\n        console.error('❌ Error:', response.status, result);\n    }\n} catch (error) {\n    console.error('❌ Network error:', error);\n}"
          },
          {
            "lang": "JavaScript",
            "label": "Node.js + axios",
            "source": "// Using axios library\nconst axios = require('axios');\n\nconst url = \"https://astro-api.procoders.pro/api/v3/charts/synastry\";\nconst data = {\n  \"person1\": {\n    \"name\": \"Alice\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"Paris\",\n      \"country_code\": \"FR\"\n    }\n  },\n  \"person2\": {\n    \"name\": \"Bob\",\n    \"birth_data\": {\n      \"year\": 1988,\n      \"month\": 8,\n      \"day\": 22,\n      \"hour\": 18,\n      \"minute\": 45,\n      \"city\": \"Lisbon\",\n      \"country_code\": \"PT\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"orb_set\": \"tight\"\n  }\n};\n\naxios.post(url, data)\n    .then(response => {\n        console.log('✅ Success:', response.data);\n    })\n    .catch(error => {\n        if (error.response) {\n            console.error('❌ Error:', error.response.status, error.response.data);\n        } else {\n            console.error('❌ Network error:', error.message);\n        }\n    });"
          },
          {
            "lang": "Python",
            "label": "Python + requests",
            "source": "import requests\nimport json\n\n# API endpoint\nurl = \"https://astro-api.procoders.pro/api/v3/charts/synastry\"\n\n# Request data\ndata = {\n  \"person1\": {\n    \"name\": \"Alice\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"Paris\",\n      \"country_code\": \"FR\"\n    }\n  },\n  \"person2\": {\n    \"name\": \"Bob\",\n    \"birth_data\": {\n      \"year\": 1988,\n      \"month\": 8,\n      \"day\": 22,\n      \"hour\": 18,\n      \"minute\": 45,\n      \"city\": \"Lisbon\",\n      \"country_code\": \"PT\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"orb_set\": \"tight\"\n  }\n}\n\n# Make the request\nresponse = requests.post(\n    url,\n    headers={\"Content-Type\": \"application/json\"},\n    json=data\n)\n\n# Handle response\nif response.status_code == 200:\n    result = response.json()\n    print(\"✅ Success!\")\n    print(json.dumps(result, indent=2))\nelse:\n    print(f\"❌ Error: {response.status_code}\")\n    print(response.text)"
          },
          {
            "lang": "PHP",
            "label": "PHP + cURL",
            "source": "<?php\n$url = \"https://astro-api.procoders.pro/api/v3/charts/synastry\";\n$data = {\n    \"person1\": {\n        \"name\": \"Alice\",\n        \"birth_data\": {\n            \"year\": 1990,\n            \"month\": 5,\n            \"day\": 15,\n            \"hour\": 14,\n            \"minute\": 30,\n            \"city\": \"Paris\",\n            \"country_code\": \"FR\"\n        }\n    },\n    \"person2\": {\n        \"name\": \"Bob\",\n        \"birth_data\": {\n            \"year\": 1988,\n            \"month\": 8,\n            \"day\": 22,\n            \"hour\": 18,\n            \"minute\": 45,\n            \"city\": \"Lisbon\",\n            \"country_code\": \"PT\"\n        }\n    },\n    \"options\": {\n        \"house_system\": \"P\",\n        \"orb_set\": \"tight\"\n    }\n};\n\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n$response = curl_exec($ch);\n$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\ncurl_close($ch);\n\nif ($httpCode === 200) {\n    $result = json_decode($response, true);\n    echo \"✅ Success!\\n\";\n    echo json_encode($result, JSON_PRETTY_PRINT);\n} else {\n    echo \"❌ Error: $httpCode\\n\";\n    echo $response;\n}\n?>"
          },
          {
            "lang": "Go",
            "label": "Go + net/http",
            "source": "package main\n\nimport (\n    \"bytes\"\n    \"encoding/json\"\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    url := \"https://astro-api.procoders.pro/api/v3/charts/synastry\"\n    \n    data := map[string]interface{}{\n  \"person1\": {\n    \"name\": \"Alice\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"Paris\",\n      \"country_code\": \"FR\"\n    }\n  },\n  \"person2\": {\n    \"name\": \"Bob\",\n    \"birth_data\": {\n      \"year\": 1988,\n      \"month\": 8,\n      \"day\": 22,\n      \"hour\": 18,\n      \"minute\": 45,\n      \"city\": \"Lisbon\",\n      \"country_code\": \"PT\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"orb_set\": \"tight\"\n  }\n}\n    \n    jsonData, err := json.Marshal(data)\n    if err != nil {\n        fmt.Printf(\"❌ Error marshaling JSON: %v\\n\", err)\n        return\n    }\n    \n    resp, err := http.Post(url, \"application/json\", bytes.NewBuffer(jsonData))\n    if err != nil {\n        fmt.Printf(\"❌ Error making request: %v\\n\", err)\n        return\n    }\n    defer resp.Body.Close()\n    \n    body, err := io.ReadAll(resp.Body)\n    if err != nil {\n        fmt.Printf(\"❌ Error reading response: %v\\n\", err)\n        return\n    }\n    \n    if resp.StatusCode == 200 {\n        fmt.Println(\"✅ Success!\")\n        var result map[string]interface{}\n        json.Unmarshal(body, &result)\n        prettyJSON, _ := json.MarshalIndent(result, \"\", \"  \")\n        fmt.Println(string(prettyJSON))\n    } else {\n        fmt.Printf(\"❌ Error: %d\\n\", resp.StatusCode)\n        fmt.Println(string(body))\n    }\n}"
          }
        ]
      }
    },
    "/api/v3/charts/composite": {
      "post": {
        "tags": [
          "🗺️ Chart Data & Analysis"
        ],
        "summary": "Composite (relationship as entity)",
        "description": "👶 **Composite: The Third Entity** - The relationship itself as a separate chart\n\n**What this is:**\nCreates a **new chart** from mathematical midpoints between both people's planets.\nThis is the chart of the relationship itself — a \"third entity\" born from two people.\nAnswers the question: **\"What...",
        "operationId": "get_composite_chart_api_v3_charts_composite_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompositeChartRequest"
              },
              "examples": {
                "basic_composite": {
                  "summary": "Basic Composite Chart",
                  "description": "Calculate composite chart for two people using default options",
                  "value": {
                    "subject1": {
                      "name": "Alice Johnson",
                      "birth_data": {
                        "year": 1990,
                        "month": 3,
                        "day": 15,
                        "hour": 14,
                        "minute": 30,
                        "city": "London",
                        "nation": "GB",
                        "timezone": "Europe/London"
                      }
                    },
                    "subject2": {
                      "name": "Bob Smith",
                      "birth_data": {
                        "year": 1988,
                        "month": 7,
                        "day": 22,
                        "hour": 9,
                        "minute": 45,
                        "city": "Paris",
                        "nation": "FR",
                        "timezone": "Europe/Paris"
                      }
                    },
                    "options": {
                      "house_system": "P",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Ascendant",
                        "Medium_Coeli"
                      ],
                      "precision": 2
                    }
                  }
                },
                "advanced_composite": {
                  "summary": "Advanced Composite Chart",
                  "description": "Composite chart with custom house system and extended planetary points",
                  "value": {
                    "subject1": {
                      "name": "Emma Wilson",
                      "birth_data": {
                        "year": 1985,
                        "month": 12,
                        "day": 8,
                        "hour": 18,
                        "minute": 15,
                        "city": "New York",
                        "nation": "US",
                        "timezone": "America/New_York"
                      }
                    },
                    "subject2": {
                      "name": "Michael Davis",
                      "birth_data": {
                        "year": 1983,
                        "month": 4,
                        "day": 25,
                        "hour": 11,
                        "minute": 20,
                        "city": "Sydney",
                        "nation": "AU",
                        "timezone": "Australia/Sydney"
                      }
                    },
                    "options": {
                      "house_system": "W",
                      "zodiac_type": "Tropic",
                      "active_points": [
                        "Sun",
                        "Moon",
                        "Mercury",
                        "Venus",
                        "Mars",
                        "Jupiter",
                        "Saturn",
                        "Uranus",
                        "Neptune",
                        "Pluto",
                        "Mean_Node",
                        "Chiron",
                        "Ascendant",
                        "Medium_Coeli"
                      ],
                      "precision": 3
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful composite chart calculation with midpoint-based planetary positions representing the relationship",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompositeChartResponse"
                },
                "examples": {
                  "successful_response": {
                    "summary": "Successful chart calculation response",
                    "description": "Complete chart data with all requested calculations",
                    "value": {
                      "subject_data": {
                        "subject1": {
                          "name": "Alice Johnson",
                          "year": 1990,
                          "month": 3,
                          "day": 15,
                          "hour": 14,
                          "minute": 30,
                          "city": "London",
                          "nation": "GB",
                          "lng": -0.1278,
                          "lat": 51.5074,
                          "tz_str": "Europe/London"
                        },
                        "subject2": {
                          "name": "Bob Smith",
                          "year": 1988,
                          "month": 7,
                          "day": 22,
                          "hour": 9,
                          "minute": 45,
                          "city": "Paris",
                          "nation": "FR",
                          "lng": 2.3522,
                          "lat": 48.8566,
                          "tz_str": "Europe/Paris"
                        },
                        "composite_subject": {
                          "name": "Alice & Bob Composite",
                          "year": 1989,
                          "month": 5,
                          "day": 18,
                          "hour": 12,
                          "minute": 7,
                          "city": "London",
                          "nation": "GB",
                          "lng": -1.65,
                          "lat": 49.5,
                          "tz_str": "Europe/London"
                        }
                      },
                      "chart_data": {
                        "planetary_positions": [
                          {
                            "name": "Sun",
                            "sign": "Gem",
                            "degree": 3.45,
                            "absolute_longitude": 63.45,
                            "house": 8,
                            "is_retrograde": false,
                            "speed": 0.958
                          },
                          {
                            "name": "Moon",
                            "sign": "Lib",
                            "degree": 18.23,
                            "absolute_longitude": 198.23,
                            "house": 2,
                            "is_retrograde": false,
                            "speed": 13.156
                          },
                          {
                            "name": "Mercury",
                            "sign": "Can",
                            "degree": 12.67,
                            "absolute_longitude": 102.67,
                            "house": 9,
                            "is_retrograde": false,
                            "speed": 1.234
                          },
                          {
                            "name": "Venus",
                            "sign": "Leo",
                            "degree": 25.89,
                            "absolute_longitude": 145.89,
                            "house": 11,
                            "is_retrograde": false,
                            "speed": 1.156
                          },
                          {
                            "name": "Mars",
                            "sign": "Vir",
                            "degree": 8.12,
                            "absolute_longitude": 158.12,
                            "house": 12,
                            "is_retrograde": false,
                            "speed": 0.624
                          },
                          {
                            "name": "Ascendant",
                            "sign": "Sco",
                            "degree": 14.56,
                            "absolute_longitude": 224.56,
                            "house": 1,
                            "is_retrograde": false
                          },
                          {
                            "name": "Medium_Coeli",
                            "sign": "Leo",
                            "degree": 22.34,
                            "absolute_longitude": 142.34,
                            "house": 10,
                            "is_retrograde": false
                          }
                        ],
                        "house_cusps": [
                          {
                            "house": 1,
                            "sign": "Sco",
                            "degree": 14.56
                          },
                          {
                            "house": 2,
                            "sign": "Sag",
                            "degree": 18.23
                          },
                          {
                            "house": 3,
                            "sign": "Cap",
                            "degree": 25.78
                          },
                          {
                            "house": 4,
                            "sign": "Aqu",
                            "degree": 2.34
                          },
                          {
                            "house": 5,
                            "sign": "Pis",
                            "degree": 8.91
                          },
                          {
                            "house": 6,
                            "sign": "Ari",
                            "degree": 12.45
                          },
                          {
                            "house": 7,
                            "sign": "Tau",
                            "degree": 14.56
                          },
                          {
                            "house": 8,
                            "sign": "Gem",
                            "degree": 18.23
                          },
                          {
                            "house": 9,
                            "sign": "Can",
                            "degree": 25.78
                          },
                          {
                            "house": 10,
                            "sign": "Leo",
                            "degree": 2.34
                          },
                          {
                            "house": 11,
                            "sign": "Vir",
                            "degree": 8.91
                          },
                          {
                            "house": 12,
                            "sign": "Lib",
                            "degree": 12.45
                          }
                        ],
                        "aspects": [
                          {
                            "point1": "Sun",
                            "point2": "Venus",
                            "aspect_type": "sextile",
                            "orb": 2.44
                          },
                          {
                            "point1": "Moon",
                            "point2": "Mars",
                            "aspect_type": "square",
                            "orb": 10.11
                          },
                          {
                            "point1": "Mercury",
                            "point2": "Ascendant",
                            "aspect_type": "trine",
                            "orb": 1.89
                          },
                          {
                            "point1": "Venus",
                            "point2": "Medium_Coeli",
                            "aspect_type": "conjunction",
                            "orb": 3.55
                          },
                          {
                            "point1": "Sun",
                            "point2": "Moon",
                            "aspect_type": "trine",
                            "orb": 5.22
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid chart parameters"
          },
          "422": {
            "description": "Validation error - check subject data"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL + jq",
            "source": "curl -X POST \"https://astro-api.procoders.pro/api/v3/charts/composite\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"subject\": {\"name\": \"John Doe\", \"birth_data\": {\"year\": 1990, \"month\": 5, \"day\": 15, \"hour\": 14, \"minute\": 30, \"city\": \"London\", \"country_code\": \"GB\"}}, \"options\": {\"house_system\": \"P\", \"zodiac_type\": \"Tropic\", \"active_points\": [\"Sun\", \"Moon\", \"Mercury\", \"Venus\", \"Mars\", \"Jupiter\", \"Saturn\"], \"precision\": 2}}' \\\n     | jq ."
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript + fetch",
            "source": "// Using fetch API (Node.js 18+ or browser)\nconst url = \"https://astro-api.procoders.pro/api/v3/charts/composite\";\n\nconst data = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"zodiac_type\": \"Tropic\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\",\n      \"Jupiter\",\n      \"Saturn\"\n    ],\n    \"precision\": 2\n  }\n};\n\ntry {\n    const response = await fetch(url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/json'\n        },\n        body: JSON.stringify(data)\n    });\n    \n    const result = await response.json();\n    \n    if (response.ok) {\n        console.log('✅ Success:', result);\n    } else {\n        console.error('❌ Error:', response.status, result);\n    }\n} catch (error) {\n    console.error('❌ Network error:', error);\n}"
          },
          {
            "lang": "JavaScript",
            "label": "Node.js + axios",
            "source": "// Using axios library\nconst axios = require('axios');\n\nconst url = \"https://astro-api.procoders.pro/api/v3/charts/composite\";\nconst data = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"zodiac_type\": \"Tropic\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\",\n      \"Jupiter\",\n      \"Saturn\"\n    ],\n    \"precision\": 2\n  }\n};\n\naxios.post(url, data)\n    .then(response => {\n        console.log('✅ Success:', response.data);\n    })\n    .catch(error => {\n        if (error.response) {\n            console.error('❌ Error:', error.response.status, error.response.data);\n        } else {\n            console.error('❌ Network error:', error.message);\n        }\n    });"
          },
          {
            "lang": "Python",
            "label": "Python + requests",
            "source": "import requests\nimport json\n\n# API endpoint\nurl = \"https://astro-api.procoders.pro/api/v3/charts/composite\"\n\n# Request data\ndata = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"zodiac_type\": \"Tropic\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\",\n      \"Jupiter\",\n      \"Saturn\"\n    ],\n    \"precision\": 2\n  }\n}\n\n# Make the request\nresponse = requests.post(\n    url,\n    headers={\"Content-Type\": \"application/json\"},\n    json=data\n)\n\n# Handle response\nif response.status_code == 200:\n    result = response.json()\n    print(\"✅ Success!\")\n    print(json.dumps(result, indent=2))\nelse:\n    print(f\"❌ Error: {response.status_code}\")\n    print(response.text)"
          },
          {
            "lang": "PHP",
            "label": "PHP + cURL",
            "source": "<?php\n$url = \"https://astro-api.procoders.pro/api/v3/charts/composite\";\n$data = {\n    \"subject\": {\n        \"name\": \"John Doe\",\n        \"birth_data\": {\n            \"year\": 1990,\n            \"month\": 5,\n            \"day\": 15,\n            \"hour\": 14,\n            \"minute\": 30,\n            \"city\": \"London\",\n            \"country_code\": \"GB\"\n        }\n    },\n    \"options\": {\n        \"house_system\": \"P\",\n        \"zodiac_type\": \"Tropic\",\n        \"active_points\": [\n            \"Sun\",\n            \"Moon\",\n            \"Mercury\",\n            \"Venus\",\n            \"Mars\",\n            \"Jupiter\",\n            \"Saturn\"\n        ],\n        \"precision\": 2\n    }\n};\n\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n$response = curl_exec($ch);\n$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\ncurl_close($ch);\n\nif ($httpCode === 200) {\n    $result = json_decode($response, true);\n    echo \"✅ Success!\\n\";\n    echo json_encode($result, JSON_PRETTY_PRINT);\n} else {\n    echo \"❌ Error: $httpCode\\n\";\n    echo $response;\n}\n?>"
          },
          {
            "lang": "Go",
            "label": "Go + net/http",
            "source": "package main\n\nimport (\n    \"bytes\"\n    \"encoding/json\"\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    url := \"https://astro-api.procoders.pro/api/v3/charts/composite\"\n    \n    data := map[string]interface{}{\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"zodiac_type\": \"Tropic\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\",\n      \"Jupiter\",\n      \"Saturn\"\n    ],\n    \"precision\": 2\n  }\n}\n    \n    jsonData, err := json.Marshal(data)\n    if err != nil {\n        fmt.Printf(\"❌ Error marshaling JSON: %v\\n\", err)\n        return\n    }\n    \n    resp, err := http.Post(url, \"application/json\", bytes.NewBuffer(jsonData))\n    if err != nil {\n        fmt.Printf(\"❌ Error making request: %v\\n\", err)\n        return\n    }\n    defer resp.Body.Close()\n    \n    body, err := io.ReadAll(resp.Body)\n    if err != nil {\n        fmt.Printf(\"❌ Error reading response: %v\\n\", err)\n        return\n    }\n    \n    if resp.StatusCode == 200 {\n        fmt.Println(\"✅ Success!\")\n        var result map[string]interface{}\n        json.Unmarshal(body, &result)\n        prettyJSON, _ := json.MarshalIndent(result, \"\", \"  \")\n        fmt.Println(string(prettyJSON))\n    } else {\n        fmt.Printf(\"❌ Error: %d\\n\", resp.StatusCode)\n        fmt.Println(string(body))\n    }\n}"
          }
        ]
      }
    },
    "/api/v3/charts/natal-transits": {
      "post": {
        "tags": [
          "🗺️ Chart Data & Analysis"
        ],
        "summary": "Transit Period Analysis (date range)",
        "description": "📅 **Transit Period Analysis** - All transits over a date range with exact timing\n\n**What this is:**\nAnalyzes all transits over a **date range** with calculation of exact aspect times.\nAnswers the question: **\"What transits await me in March?\"**\n\n**Input:** Natal data + date_range (start_date → en...",
        "operationId": "get_natal_transits_api_v3_charts_natal_transits_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NatalTransitRequest"
              },
              "examples": {
                "current_transits": {
                  "summary": "Current Transits Analysis",
                  "description": "Current planetary transits to natal chart for timing and guidance",
                  "value": {
                    "subject": {
                      "name": "Transit Tracker",
                      "birth_data": {
                        "year": 1990,
                        "month": 5,
                        "day": 15,
                        "hour": 14,
                        "minute": 30,
                        "second": 0,
                        "city": "London",
                        "country_code": "GB"
                      }
                    },
                    "date_range": {
                      "start_date": {
                        "year": 2024,
                        "month": 3,
                        "day": 1
                      },
                      "end_date": {
                        "year": 2024,
                        "month": 3,
                        "day": 31
                      }
                    },
                    "orb": 2
                  }
                },
                "major_transits_year": {
                  "summary": "Major Yearly Transits",
                  "description": "Outer planet transits for the year with wider orbs for long-term planning",
                  "value": {
                    "subject": {
                      "name": "Long Term Planner",
                      "birth_data": {
                        "year": 1985,
                        "month": 8,
                        "day": 22,
                        "hour": 18,
                        "minute": 45,
                        "second": 0,
                        "latitude": 48.8566,
                        "longitude": 2.3522
                      }
                    },
                    "date_range": {
                      "start_date": {
                        "year": 2024,
                        "month": 1,
                        "day": 1
                      },
                      "end_date": {
                        "year": 2024,
                        "month": 12,
                        "day": 31
                      }
                    },
                    "orb": 3
                  }
                },
                "precise_timing": {
                  "summary": "Precise Weekly Timing",
                  "description": "High-precision weekly transit analysis for exact timing of events",
                  "value": {
                    "subject": {
                      "name": "Timing Master",
                      "birth_data": {
                        "year": 1992,
                        "month": 11,
                        "day": 8,
                        "hour": 9,
                        "minute": 15,
                        "second": 0,
                        "city": "Tokyo",
                        "country_code": "JP"
                      }
                    },
                    "date_range": {
                      "start_date": {
                        "year": 2024,
                        "month": 4,
                        "day": 15
                      },
                      "end_date": {
                        "year": 2024,
                        "month": 4,
                        "day": 21
                      }
                    },
                    "orb": 0.5
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful natal transit calculation with current planetary influences on birth chart",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatalTransitChartResponse"
                },
                "examples": {
                  "successful_response": {
                    "summary": "Successful natal transits calculation",
                    "description": "Complete transit analysis to natal chart with precise timing and aspects",
                    "value": {
                      "subject_data": {
                        "name": "Oleg",
                        "birth_year": 1985,
                        "birth_month": 5,
                        "birth_day": 11,
                        "birth_hour": 18,
                        "birth_minute": 15,
                        "birth_city": "Kharkiv",
                        "birth_nation": "UA",
                        "lng": 36.2304,
                        "lat": 49.9935,
                        "tz_str": "Europe/Kiev"
                      },
                      "transits": [
                        {
                          "date": "2024-05-11",
                          "exact_time": "2024-05-11T08:15:00Z",
                          "transiting_planet": "Jupiter",
                          "aspect_type": "conjunction",
                          "stationed_planet": "Sun",
                          "orb": 0.25,
                          "aspect_direction": "exact",
                          "transiting_speed": 0.089,
                          "transiting_position": {
                            "sign": "Tau",
                            "degree": 21.08,
                            "absolute_longitude": 51.08
                          },
                          "natal_position": {
                            "sign": "Tau",
                            "degree": 20.83,
                            "absolute_longitude": 50.83
                          },
                          "house_overlay": {
                            "transiting_house": 10,
                            "natal_house": 10
                          }
                        },
                        {
                          "date": "2024-05-15",
                          "exact_time": "2024-05-15T14:32:00Z",
                          "transiting_planet": "Saturn",
                          "aspect_type": "trine",
                          "stationed_planet": "Moon",
                          "orb": 1.67,
                          "aspect_direction": "applying",
                          "transiting_speed": 0.034,
                          "transiting_position": {
                            "sign": "Pis",
                            "degree": 19.16,
                            "absolute_longitude": 349.16
                          },
                          "natal_position": {
                            "sign": "Tau",
                            "degree": 20.83,
                            "absolute_longitude": 50.83
                          },
                          "house_overlay": {
                            "transiting_house": 8,
                            "natal_house": 10
                          }
                        },
                        {
                          "date": "2024-05-18",
                          "transiting_planet": "Mars",
                          "aspect_type": "square",
                          "stationed_planet": "Mercury",
                          "orb": 2.89,
                          "aspect_direction": "separating",
                          "transiting_speed": 0.634,
                          "transiting_position": {
                            "sign": "Ari",
                            "degree": 12.56,
                            "absolute_longitude": 12.56
                          },
                          "natal_position": {
                            "sign": "Gem",
                            "degree": 15.45,
                            "absolute_longitude": 75.45
                          },
                          "house_overlay": {
                            "transiting_house": 9,
                            "natal_house": 11
                          }
                        },
                        {
                          "date": "2024-05-20",
                          "exact_time": "2024-05-20T10:45:00Z",
                          "transiting_planet": "Venus",
                          "aspect_type": "sextile",
                          "stationed_planet": "Venus",
                          "orb": 0.78,
                          "aspect_direction": "applying",
                          "transiting_speed": 1.156,
                          "transiting_position": {
                            "sign": "Vir",
                            "degree": 29.69,
                            "absolute_longitude": 149.69
                          },
                          "natal_position": {
                            "sign": "Can",
                            "degree": 28.91,
                            "absolute_longitude": 118.91
                          },
                          "house_overlay": {
                            "transiting_house": 2,
                            "natal_house": 12
                          }
                        }
                      ],
                      "analysis_period": {
                        "start_date": "2024-05-01",
                        "end_date": "2024-05-31",
                        "total_transits": 42,
                        "major_transits": 8,
                        "exact_aspects": 12
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid chart parameters"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Invalid orb value",
                    "description": "Example of validation error for invalid orb parameter",
                    "value": {
                      "detail": [
                        {
                          "type": "value_error",
                          "loc": [
                            "body",
                            "orb"
                          ],
                          "msg": "Orb must be between 0.1 and 10.0 degrees",
                          "input": 15.5
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL + jq",
            "source": "curl -X POST \"https://astro-api.procoders.pro/api/v3/charts/natal-transits\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"subject\": {\"name\": \"John Doe\", \"birth_data\": {\"year\": 1990, \"month\": 5, \"day\": 15, \"hour\": 14, \"minute\": 30, \"city\": \"London\", \"country_code\": \"GB\"}}, \"transit_date\": {\"year\": 2024, \"month\": 12, \"day\": 25, \"hour\": 12, \"minute\": 0}, \"options\": {\"house_system\": \"P\", \"active_points\": [\"Sun\", \"Moon\", \"Mercury\", \"Venus\", \"Mars\"], \"orb_set\": \"medium\"}}' \\\n     | jq ."
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript + fetch",
            "source": "// Using fetch API (Node.js 18+ or browser)\nconst url = \"https://astro-api.procoders.pro/api/v3/charts/natal-transits\";\n\nconst data = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"transit_date\": {\n    \"year\": 2024,\n    \"month\": 12,\n    \"day\": 25,\n    \"hour\": 12,\n    \"minute\": 0\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\"\n    ],\n    \"orb_set\": \"medium\"\n  }\n};\n\ntry {\n    const response = await fetch(url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/json'\n        },\n        body: JSON.stringify(data)\n    });\n    \n    const result = await response.json();\n    \n    if (response.ok) {\n        console.log('✅ Success:', result);\n    } else {\n        console.error('❌ Error:', response.status, result);\n    }\n} catch (error) {\n    console.error('❌ Network error:', error);\n}"
          },
          {
            "lang": "JavaScript",
            "label": "Node.js + axios",
            "source": "// Using axios library\nconst axios = require('axios');\n\nconst url = \"https://astro-api.procoders.pro/api/v3/charts/natal-transits\";\nconst data = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"transit_date\": {\n    \"year\": 2024,\n    \"month\": 12,\n    \"day\": 25,\n    \"hour\": 12,\n    \"minute\": 0\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\"\n    ],\n    \"orb_set\": \"medium\"\n  }\n};\n\naxios.post(url, data)\n    .then(response => {\n        console.log('✅ Success:', response.data);\n    })\n    .catch(error => {\n        if (error.response) {\n            console.error('❌ Error:', error.response.status, error.response.data);\n        } else {\n            console.error('❌ Network error:', error.message);\n        }\n    });"
          },
          {
            "lang": "Python",
            "label": "Python + requests",
            "source": "import requests\nimport json\n\n# API endpoint\nurl = \"https://astro-api.procoders.pro/api/v3/charts/natal-transits\"\n\n# Request data\ndata = {\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"transit_date\": {\n    \"year\": 2024,\n    \"month\": 12,\n    \"day\": 25,\n    \"hour\": 12,\n    \"minute\": 0\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\"\n    ],\n    \"orb_set\": \"medium\"\n  }\n}\n\n# Make the request\nresponse = requests.post(\n    url,\n    headers={\"Content-Type\": \"application/json\"},\n    json=data\n)\n\n# Handle response\nif response.status_code == 200:\n    result = response.json()\n    print(\"✅ Success!\")\n    print(json.dumps(result, indent=2))\nelse:\n    print(f\"❌ Error: {response.status_code}\")\n    print(response.text)"
          },
          {
            "lang": "PHP",
            "label": "PHP + cURL",
            "source": "<?php\n$url = \"https://astro-api.procoders.pro/api/v3/charts/natal-transits\";\n$data = {\n    \"subject\": {\n        \"name\": \"John Doe\",\n        \"birth_data\": {\n            \"year\": 1990,\n            \"month\": 5,\n            \"day\": 15,\n            \"hour\": 14,\n            \"minute\": 30,\n            \"city\": \"London\",\n            \"country_code\": \"GB\"\n        }\n    },\n    \"transit_date\": {\n        \"year\": 2024,\n        \"month\": 12,\n        \"day\": 25,\n        \"hour\": 12,\n        \"minute\": 0\n    },\n    \"options\": {\n        \"house_system\": \"P\",\n        \"active_points\": [\n            \"Sun\",\n            \"Moon\",\n            \"Mercury\",\n            \"Venus\",\n            \"Mars\"\n        ],\n        \"orb_set\": \"medium\"\n    }\n};\n\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n$response = curl_exec($ch);\n$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\ncurl_close($ch);\n\nif ($httpCode === 200) {\n    $result = json_decode($response, true);\n    echo \"✅ Success!\\n\";\n    echo json_encode($result, JSON_PRETTY_PRINT);\n} else {\n    echo \"❌ Error: $httpCode\\n\";\n    echo $response;\n}\n?>"
          },
          {
            "lang": "Go",
            "label": "Go + net/http",
            "source": "package main\n\nimport (\n    \"bytes\"\n    \"encoding/json\"\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    url := \"https://astro-api.procoders.pro/api/v3/charts/natal-transits\"\n    \n    data := map[string]interface{}{\n  \"subject\": {\n    \"name\": \"John Doe\",\n    \"birth_data\": {\n      \"year\": 1990,\n      \"month\": 5,\n      \"day\": 15,\n      \"hour\": 14,\n      \"minute\": 30,\n      \"city\": \"London\",\n      \"country_code\": \"GB\"\n    }\n  },\n  \"transit_date\": {\n    \"year\": 2024,\n    \"month\": 12,\n    \"day\": 25,\n    \"hour\": 12,\n    \"minute\": 0\n  },\n  \"options\": {\n    \"house_system\": \"P\",\n    \"active_points\": [\n      \"Sun\",\n      \"Moon\",\n      \"Mercury\",\n      \"Venus\",\n      \"Mars\"\n    ],\n    \"orb_set\": \"medium\"\n  }\n}\n    \n    jsonData, err := json.Marshal(data)\n    if err != nil {\n        fmt.Printf(\"❌ Error marshaling JSON: %v\\n\", err)\n        return\n    }\n    \n    resp, err := http.Post(url, \"application/json\", bytes.NewBuffer(jsonData))\n    if err != nil {\n        fmt.Printf(\"❌ Error making request: %v\\n\", err)\n        return\n    }\n    defer resp.Body.Close()\n    \n    body, err := io.ReadAll(resp.Body)\n    if err != nil {\n        fmt.Printf(\"❌ Error reading response: %v\\n\", err)\n        return\n    }\n    \n    if resp.StatusCode == 200 {\n        fmt.Println(\"✅ Success!\")\n        var result map[string]interface{}\n        json.Unmarshal(body, &result)\n        prettyJSON, _ := json.MarshalIndent(result, \"\", \"  \")\n        fmt.Println(string(prettyJSON))\n    } else {\n        fmt.Printf(\"❌ Error: %d\\n\", resp.StatusCode)\n        fmt.Println(string(body))\n    }\n}"
          }
        ]
      }
    },
    "/api/v3/analysis/lunar-analysis": {
      "post": {
        "tags": [
          "📖 Reports & Interpretations"
        ],
        "summary": "Get Lunar Analysis",
        "description": "🌙 **Detailed Lunar Analysis** - Comprehensive Moon phase and cycle interpretation\n\n**Perfect for:**\n- 🌙 Understanding emotional cycles and patterns\n- 📅 Lunar timing for important decisions\n- 🎯 Electional astrology and optimal timing\n- 📊 Feminine cycles and natural rhythms\n\n**What you get:**\n- **C...",
        "operationId": "get_lunar_analysis_api_v3_analysis_lunar_analysis_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LunarAnalysisRequest"
              },
              "examples": {
                "city_example": {
                  "summary": "Using City Name - report_options",
                  "description": "API will automatically determine coordinates and timezone from city name",
                  "value": {
                    "datetime_location": {
                      "year": 2024,
                      "month": 3,
                      "day": 15,
                      "hour": 20,
                      "minute": 30,
                      "second": 0,
                      "city": "London",
                      "country_code": "GB"
                    },
                    "report_options": {
                      "tradition": "psychological",
                      "language": "en"
                    }
                  }
                },
                "coordinates_example": {
                  "summary": "Using Coordinates - report_options",
                  "description": "API will automatically determine timezone from coordinates",
                  "value": {
                    "datetime_location": {
                      "year": 2024,
                      "month": 7,
                      "day": 21,
                      "hour": 14,
                      "minute": 15,
                      "second": 0,
                      "latitude": 40.7128,
                      "longitude": -74.006
                    },
                    "report_options": {
                      "tradition": "universal",
                      "language": "en"
                    }
                  }
                },
                "paris_example": {
                  "summary": "Paris with French Language - report_options",
                  "description": "Example with different city and language using report_options",
                  "value": {
                    "datetime_location": {
                      "year": 2024,
                      "month": 12,
                      "day": 8,
                      "hour": 9,
                      "minute": 45,
                      "second": 0,
                      "city": "Paris",
                      "country_code": "FR"
                    },
                    "report_options": {
                      "tradition": "classical",
                      "language": "fr"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful lunar analysis with detailed moon phase and cycle interpretations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LunarAnalysisResponse"
                },
                "examples": {
                  "successful_response": {
                    "summary": "Successful analysis response",
                    "description": "Complete analysis with all requested information",
                    "value": {
                      "lunar_metrics": {
                        "date": "2024-03-15",
                        "within_perigee_range": false,
                        "distance": 384400.5,
                        "within_apogee_range": false,
                        "apogee_distance": 406696.2,
                        "moon_sign": "Leo",
                        "moon_phase": "Waxing Crescent",
                        "moon_age_in_days": 5.2,
                        "moon_day": 6,
                        "moon_illumination": 28.4
                      },
                      "interpretations": [
                        {
                          "title": "Waxing Crescent Phase",
                          "text": "The Waxing Crescent phase represents a time of intention setting and taking initial action toward your goals. This is an ideal time for planning new projects, making decisions, and building momentum. The energy is growing and optimistic, encouraging you to move forward with confidence while remaining flexible in your approach."
                        },
                        {
                          "title": "Moon in Leo",
                          "text": "With the Moon currently in Leo, emotions run dramatic and expressive. This is a time when creativity, self-expression, and personal recognition become especially important. You may feel more confident, generous, and eager to share your talents with others. Romance and artistic pursuits are favored under this placement."
                        },
                        {
                          "title": "Lunar Day 6 Energy",
                          "text": "The 6th lunar day brings energy focused on service, healing, and practical improvements. This is an excellent time for addressing health matters, organizing your environment, and helping others. The energy supports methodical work and attention to detail, making it ideal for tasks that require precision and care."
                        },
                        {
                          "title": "28% Illumination Impact",
                          "text": "At 28% illumination, the Moon's influence is moderate but growing. This level of lunar energy supports new beginnings while maintaining enough introspective quality for thoughtful planning. It's an excellent balance for both action and reflection, allowing you to move forward with confidence while staying connected to your inner wisdom."
                        },
                        {
                          "title": "Distance and Emotional Intensity",
                          "text": "At a standard orbital distance of 384,400 km, the Moon's emotional influence is at typical intensity. You may experience emotions in a balanced way - neither overwhelmingly intense nor unusually detached. This neutral lunar distance supports steady emotional progress and clear decision-making abilities."
                        },
                        {
                          "title": "Optimal Timing Guidance",
                          "text": "This lunar configuration is excellent for creative projects, romantic endeavors, and public presentations. The Leo Moon encourages bold self-expression, while the Waxing Crescent phase supports new initiatives. Avoid major emotional decisions late in the evening when Leo's dramatic tendencies might be amplified."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid analysis parameters"
          },
          "422": {
            "description": "Validation error - check report options"
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL + jq",
            "source": "curl -X POST \"https://astro-api.procoders.pro/api/v3/analysis/lunar-analysis\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"datetime_location\": {\"year\": 2024, \"month\": 3, \"day\": 15, \"hour\": 20, \"minute\": 30, \"second\": 0, \"city\": \"London\", \"country_code\": \"GB\"}, \"tradition\": \"psychological\", \"language\": \"en\"}' \\\n     | jq ."
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript + fetch",
            "source": "// Using fetch API (Node.js 18+ or browser)\nconst url = \"https://astro-api.procoders.pro/api/v3/analysis/lunar-analysis\";\n\nconst data = {\n  \"datetime_location\": {\n    \"year\": 2024,\n    \"month\": 3,\n    \"day\": 15,\n    \"hour\": 20,\n    \"minute\": 30,\n    \"second\": 0,\n    \"city\": \"London\",\n    \"country_code\": \"GB\"\n  },\n  \"tradition\": \"psychological\",\n  \"language\": \"en\"\n};\n\ntry {\n    const response = await fetch(url, {\n        method: 'POST',\n        headers: {\n            'Content-Type': 'application/json'\n        },\n        body: JSON.stringify(data)\n    });\n    \n    const result = await response.json();\n    \n    if (response.ok) {\n        console.log('✅ Success:', result);\n    } else {\n        console.error('❌ Error:', response.status, result);\n    }\n} catch (error) {\n    console.error('❌ Network error:', error);\n}"
          },
          {
            "lang": "JavaScript",
            "label": "Node.js + axios",
            "source": "// Using axios library\nconst axios = require('axios');\n\nconst url = \"https://astro-api.procoders.pro/api/v3/analysis/lunar-analysis\";\nconst data = {\n  \"datetime_location\": {\n    \"year\": 2024,\n    \"month\": 3,\n    \"day\": 15,\n    \"hour\": 20,\n    \"minute\": 30,\n    \"second\": 0,\n    \"city\": \"London\",\n    \"country_code\": \"GB\"\n  },\n  \"tradition\": \"psychological\",\n  \"language\": \"en\"\n};\n\naxios.post(url, data)\n    .then(response => {\n        console.log('✅ Success:', response.data);\n    })\n    .catch(error => {\n        if (error.response) {\n            console.error('❌ Error:', error.response.status, error.response.data);\n        } else {\n            console.error('❌ Network error:', error.message);\n        }\n    });"
          },
          {
            "lang": "Python",
            "label": "Python + requests",
            "source": "import requests\nimport json\n\n# API endpoint\nurl = \"https://astro-api.procoders.pro/api/v3/analysis/lunar-analysis\"\n\n# Request data\ndata = {\n  \"datetime_location\": {\n    \"year\": 2024,\n    \"month\": 3,\n    \"day\": 15,\n    \"hour\": 20,\n    \"minute\": 30,\n    \"second\": 0,\n    \"city\": \"London\",\n    \"country_code\": \"GB\"\n  },\n  \"tradition\": \"psychological\",\n  \"language\": \"en\"\n}\n\n# Make the request\nresponse = requests.post(\n    url,\n    headers={\"Content-Type\": \"application/json\"},\n    json=data\n)\n\n# Handle response\nif response.status_code == 200:\n    result = response.json()\n    print(\"✅ Success!\")\n    print(json.dumps(result, indent=2))\nelse:\n    print(f\"❌ Error: {response.status_code}\")\n    print(response.text)"
          },
          {
            "lang": "PHP",
            "label": "PHP + cURL",
            "source": "<?php\n$url = \"https://astro-api.procoders.pro/api/v3/analysis/lunar-analysis\";\n$data = {\n    \"datetime_location\": {\n        \"year\": 2024,\n        \"month\": 3,\n        \"day\": 15,\n        \"hour\": 20,\n        \"minute\": 30,\n        \"second\": 0,\n        \"city\": \"London\",\n        \"country_code\": \"GB\"\n    },\n    \"tradition\": \"psychological\",\n    \"language\": \"en\"\n};\n\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n$response = curl_exec($ch);\n$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\ncurl_close($ch);\n\nif ($httpCode === 200) {\n    $result = json_decode($response, true);\n    echo \"✅ Success!\\n\";\n    echo json_encode($result, JSON_PRETTY_PRINT);\n} else {\n    echo \"❌ Error: $httpCode\\n\";\n    echo $response;\n}\n?>"
          },
          {
            "lang": "Go",
            "label": "Go + net/http",
            "source": "package main\n\nimport (\n    \"bytes\"\n    \"encoding/json\"\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    url := \"https://astro-api.procoders.pro/api/v3/analysis/lunar-analysis\"\n    \n    data := map[string]interface{}{\n  \"datetime_location\": {\n    \"year\": 2024,\n    \"month\": 3,\n    \"day\": 15,\n    \"hour\": 20,\n    \"minute\": 30,\n    \"second\": 0,\n    \"city\": \"London\",\n    \"country_code\": \"GB\"\n  },\n  \"tradition\": \"psychological\",\n  \"language\": \"en\"\n}\n    \n    jsonData, err := json.Marshal(data)\n    if err != nil {\n        fmt.Printf(\"❌ Error marshaling JSON: %v\\n\", err)\n        return\n    }\n    \n    resp, err := http.Post(url, \"application/json\", bytes.NewBuffer(jsonData))\n    if err != nil {\n        fmt.Printf(\"❌ Error making request: %v\\n\", err)\n        return\n    }\n    defer resp.Body.Close()\n    \n    body, err := io.ReadAll(resp.Body)\n    if err != nil {\n        fmt.Printf(\"❌ Error reading response: %v\\n\", err)\n        return\n    }\n    \n    if resp.StatusCode == 200 {\n        fmt.Println(\"✅ Success!\")\n        var result map[string]interface{}\n        json.Unmarshal(body, &result)\n        prettyJSON, _ := json.MarshalIndent(result, \"\", \"  \")\n        fmt.Println(string(prettyJSON))\n    } else {\n        fmt.Printf(\"❌ Error: %d\\n\", resp.StatusCode)\n        fmt.Println(string(body))\n    }\n}"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AnnualProfectionRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for profection calculation"
          },
          "current_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "format": "date",
            "title": "Current Date",
            "description": "Current date for age calculation (uses today if not provided)",
            "examples": [
              "2024-01-15"
            ],
            "example": "2024-01-15"
          },
          "current_age": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Age",
            "description": "Current age (calculated from birth date if not provided)"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "AnnualProfectionRequest",
        "description": "Request for Annual Profection calculation"
      },
      "Aspect": {
        "properties": {
          "point1": {
            "type": "string",
            "title": "Point1",
            "description": "The first celestial point in the aspect.",
            "examples": [
              "Sun",
              "Moon",
              "Mercury",
              "Venus"
            ]
          },
          "point2": {
            "type": "string",
            "title": "Point2",
            "description": "The second celestial point in the aspect.",
            "examples": [
              "Mars",
              "Jupiter",
              "Saturn",
              "Ascendant"
            ]
          },
          "aspect_type": {
            "type": "string",
            "title": "Aspect Type",
            "description": "The type of aspect (e.g., 'conjunction', 'trine', 'square').",
            "examples": [
              "conjunction",
              "trine",
              "square",
              "opposition",
              "sextile"
            ]
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "The orb of the aspect in degrees. This is the deviation from the exact angle of the aspect.",
            "examples": [
              0.25,
              1.45,
              2.89,
              0.03
            ]
          },
          "peak_activations": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/PeakActivation"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Peak Activations",
            "description": "Peak activation periods when this aspect becomes most prominent during the Solar Return year. Only included for Solar Return charts.",
            "examples": [
              [
                {
                  "date": "2025-08-15",
                  "duration_days": 7,
                  "strength": "strong"
                }
              ]
            ]
          }
        },
        "type": "object",
        "required": [
          "point1",
          "point2",
          "aspect_type",
          "orb"
        ],
        "title": "Aspect"
      },
      "AspectAstrodyneData": {
        "properties": {
          "planet1": {
            "type": "string",
            "title": "Planet1",
            "description": "First planet"
          },
          "planet2": {
            "type": "string",
            "title": "Planet2",
            "description": "Second planet"
          },
          "aspect_type": {
            "type": "string",
            "title": "Aspect Type",
            "description": "Aspect type"
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "Orb in degrees"
          },
          "power": {
            "type": "number",
            "title": "Power",
            "description": "Aspect power"
          },
          "harmony": {
            "type": "number",
            "title": "Harmony",
            "description": "Aspect harmony"
          }
        },
        "type": "object",
        "required": [
          "planet1",
          "planet2",
          "aspect_type",
          "orb",
          "power",
          "harmony"
        ],
        "title": "AspectAstrodyneData",
        "description": "Astrodyne data for a single aspect"
      },
      "AstrocartographyLine": {
        "properties": {
          "planet": {
            "type": "string",
            "title": "Planet",
            "description": "Planet name"
          },
          "line_type": {
            "type": "string",
            "title": "Line Type",
            "description": "Line type (AC, MC, DS, IC)"
          },
          "angle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Angle",
            "description": "Angular house (AC, MC, DS, IC) - same as line_type"
          },
          "coordinates": {
            "items": {
              "additionalProperties": {
                "type": "number"
              },
              "type": "object"
            },
            "type": "array",
            "title": "Coordinates",
            "description": "List of latitude/longitude points",
            "examples": [
              [
                {
                  "latitude": 60,
                  "longitude": -120.5
                },
                {
                  "latitude": 45,
                  "longitude": -118.2
                }
              ]
            ]
          },
          "color": {
            "type": "string",
            "title": "Color",
            "description": "Hex color for line display",
            "examples": [
              "#FFD700",
              "#00FF7F"
            ]
          },
          "meaning": {
            "type": "string",
            "title": "Meaning",
            "description": "Astrological interpretation"
          },
          "strength": {
            "type": "string",
            "title": "Strength",
            "description": "Line strength",
            "examples": [
              "very_strong",
              "strong",
              "moderate",
              "weak"
            ]
          },
          "keywords": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Keywords",
            "description": "Key themes",
            "examples": [
              [
                "leadership",
                "vitality"
              ],
              [
                "love",
                "beauty"
              ]
            ]
          }
        },
        "type": "object",
        "required": [
          "planet",
          "line_type",
          "coordinates",
          "color",
          "meaning",
          "strength",
          "keywords"
        ],
        "title": "AstrocartographyLine",
        "description": "Single astrocartography line data"
      },
      "AstrocartographyLinesRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for line calculations"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AstrocartographyOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Calculation options"
          },
          "coordinate_density": {
            "type": "integer",
            "maximum": 500,
            "minimum": 20,
            "title": "Coordinate Density",
            "description": "Number of coordinate points per line",
            "default": 100
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "AstrocartographyLinesRequest",
        "description": "Request for raw astrocartography line data"
      },
      "AstrocartographyLinesResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/AstrocartographyLine"
            },
            "type": "array",
            "title": "Lines",
            "description": "Planetary line data"
          },
          "birth_location": {
            "additionalProperties": true,
            "type": "object",
            "title": "Birth Location",
            "description": "Original birth location"
          },
          "calculation_info": {
            "additionalProperties": true,
            "type": "object",
            "title": "Calculation Info",
            "description": "Calculation metadata"
          }
        },
        "type": "object",
        "required": [
          "lines",
          "birth_location",
          "calculation_info"
        ],
        "title": "AstrocartographyLinesResponse",
        "description": "Response for raw astrocartography line data"
      },
      "AstrocartographyMapRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for astrocartography calculation"
          },
          "map_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AstrocartographyOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Astrocartography calculation options"
          },
          "visual_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VisualOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Visual styling options"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "AstrocartographyMapRequest",
        "description": "Request for generating astrocartography SVG map"
      },
      "AstrocartographyMapResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "svg_content": {
            "type": "string",
            "title": "Svg Content",
            "description": "Complete SVG map content"
          },
          "map_data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Map Data",
            "description": "Raw map data including lines, power zones, cities"
          },
          "interactive_data": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interactive Data",
            "description": "Data for frontend interactivity"
          },
          "svg_metadata": {
            "$ref": "#/components/schemas/SVGMetadata"
          },
          "city_selection_stats": {
            "$ref": "#/components/schemas/CitySelectionStats",
            "description": "City selection statistics"
          },
          "power_zone_algorithm": {
            "type": "string",
            "title": "Power Zone Algorithm",
            "description": "Power zone calculation algorithm"
          },
          "legend_sections": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Legend Sections",
            "description": "Legend section information"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Additional generation metadata"
          }
        },
        "type": "object",
        "required": [
          "svg_content",
          "map_data",
          "svg_metadata",
          "city_selection_stats",
          "power_zone_algorithm",
          "legend_sections",
          "metadata"
        ],
        "title": "AstrocartographyMapResponse",
        "description": "Response for astrocartography map generation"
      },
      "AstrocartographyOptions": {
        "properties": {
          "planets": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Planets",
            "description": "Planets to calculate lines for",
            "default": [
              "Sun",
              "Moon",
              "Mercury",
              "Venus",
              "Mars",
              "Jupiter",
              "Saturn"
            ],
            "examples": [
              [
                "Sun",
                "Moon",
                "Venus",
                "Jupiter"
              ],
              [
                "Sun",
                "Moon",
                "Mercury",
                "Venus",
                "Mars",
                "Jupiter",
                "Saturn"
              ],
              [
                "Sun",
                "Jupiter",
                "Venus"
              ]
            ]
          },
          "line_types": {
            "items": {
              "type": "string",
              "enum": [
                "AC",
                "MC",
                "DS",
                "IC"
              ]
            },
            "type": "array",
            "title": "Line Types",
            "description": "Types of astrocartography lines to calculate",
            "default": [
              "AC",
              "MC",
              "DS",
              "IC"
            ],
            "examples": [
              [
                "AC",
                "MC"
              ],
              [
                "AC",
                "MC",
                "DS",
                "IC"
              ],
              [
                "MC",
                "IC"
              ]
            ]
          },
          "include_parans": {
            "type": "boolean",
            "title": "Include Parans",
            "description": "Include paran lines (simultaneous rising/setting)",
            "default": false
          },
          "include_local_space": {
            "type": "boolean",
            "title": "Include Local Space",
            "description": "Include local space lines",
            "default": false
          },
          "map_projection": {
            "type": "string",
            "enum": [
              "mercator",
              "robinson",
              "mollweide",
              "equirectangular"
            ],
            "title": "Map Projection",
            "description": "Map projection type for display",
            "default": "mercator"
          },
          "region": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MapRegion"
              },
              {
                "type": "null"
              }
            ],
            "description": "Geographic region to display"
          },
          "coordinate_precision": {
            "type": "integer",
            "maximum": 6,
            "minimum": 1,
            "title": "Coordinate Precision",
            "description": "Decimal places for coordinates",
            "default": 2
          },
          "line_orb_tolerance": {
            "type": "number",
            "maximum": 5,
            "minimum": 0.5,
            "title": "Line Orb Tolerance",
            "description": "Orb tolerance for line proximity in degrees",
            "default": 2
          },
          "city_selection_algorithm": {
            "type": "string",
            "enum": [
              "round_robin",
              "population",
              "distance"
            ],
            "title": "City Selection Algorithm",
            "description": "Algorithm for selecting cities near lines",
            "default": "round_robin"
          },
          "geographic_diversity": {
            "type": "boolean",
            "title": "Geographic Diversity",
            "description": "Ensure geographic diversity in city selection",
            "default": true
          },
          "max_cities_per_country": {
            "type": "integer",
            "maximum": 10,
            "minimum": 1,
            "title": "Max Cities Per Country",
            "description": "Maximum cities per country",
            "default": 4
          },
          "max_cities_per_line": {
            "type": "integer",
            "maximum": 5,
            "minimum": 1,
            "title": "Max Cities Per Line",
            "description": "Maximum cities per planetary line",
            "default": 2
          }
        },
        "type": "object",
        "title": "AstrocartographyOptions",
        "description": "Core astrocartography calculation options"
      },
      "AstrocartographyRenderRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for astrocartography calculation"
          },
          "map_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AstrocartographyOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Astrocartography calculation options (planets, lines, orbs)"
          },
          "visual_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VisualOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Map visual styling (theme, colors, labels)"
          },
          "render_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RenderOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Output format and quality options (format, width, scale, custom_colors)"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "AstrocartographyRenderRequest",
        "description": "Request for rendering astrocartography map in multiple formats (SVG, PNG, JPG, WebP, PDF).\nCombines map generation options with render output options."
      },
      "AstrodynesCompareRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for comparison"
          },
          "locations": {
            "items": {
              "$ref": "#/components/schemas/LocationInput"
            },
            "type": "array",
            "maxItems": 10,
            "minItems": 2,
            "title": "Locations",
            "description": "Locations to compare (2-10)"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AstrodynesOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Calculation options"
          }
        },
        "type": "object",
        "required": [
          "subject",
          "locations"
        ],
        "title": "AstrodynesCompareRequest",
        "description": "Request for comparing Astrodynes across multiple locations"
      },
      "AstrodynesCompareResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "natal": {
            "$ref": "#/components/schemas/ChartAstrodynesData",
            "description": "Natal chart astrodynes (reference)"
          },
          "locations": {
            "items": {
              "$ref": "#/components/schemas/LocationAstrodynesSummary"
            },
            "type": "array",
            "title": "Locations",
            "description": "Astrodynes summary for each location"
          },
          "rankings": {
            "additionalProperties": true,
            "type": "object",
            "title": "Rankings",
            "description": "Location rankings by various criteria"
          },
          "recommendations": {
            "additionalProperties": true,
            "type": "object",
            "title": "Recommendations",
            "description": "Location recommendations"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Calculation metadata"
          }
        },
        "type": "object",
        "required": [
          "natal",
          "locations",
          "rankings",
          "recommendations",
          "metadata"
        ],
        "title": "AstrodynesCompareResponse",
        "description": "Response for Astrodynes location comparison"
      },
      "AstrodynesOptions": {
        "properties": {
          "include_dignities": {
            "type": "boolean",
            "title": "Include Dignities",
            "description": "Include essential dignities in harmony calculation",
            "default": true
          },
          "aspects": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Aspects",
            "description": "Aspects to include in calculation",
            "default": [
              "conjunction",
              "sextile",
              "square",
              "trine",
              "opposition"
            ],
            "examples": [
              [
                "conjunction",
                "sextile",
                "square",
                "trine",
                "opposition"
              ],
              [
                "conjunction",
                "sextile",
                "square",
                "trine",
                "opposition",
                "semi_sextile",
                "quincunx"
              ]
            ]
          },
          "house_system": {
            "type": "string",
            "title": "House System",
            "description": "House system code",
            "default": "P",
            "examples": [
              "P",
              "W",
              "K",
              "R",
              "C"
            ]
          }
        },
        "type": "object",
        "title": "AstrodynesOptions",
        "description": "Options for Astrodynes calculation"
      },
      "AstrodynesRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for Astrodynes calculation"
          },
          "relocation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LocationInput"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional relocation location for comparison"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AstrodynesOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Calculation options"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "AstrodynesRequest",
        "description": "Request for Astrodynes calculation (natal + optional relocation)"
      },
      "AstrodynesResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "natal": {
            "$ref": "#/components/schemas/ChartAstrodynesData",
            "description": "Natal chart astrodynes"
          },
          "relocated": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartAstrodynesData"
              },
              {
                "type": "null"
              }
            ],
            "description": "Relocated chart astrodynes (if relocation provided)"
          },
          "comparison": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comparison",
            "description": "Natal vs relocated comparison (if relocation provided)"
          },
          "location_info": {
            "additionalProperties": true,
            "type": "object",
            "title": "Location Info",
            "description": "Location information"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Calculation metadata"
          }
        },
        "type": "object",
        "required": [
          "natal",
          "location_info",
          "metadata"
        ],
        "title": "AstrodynesResponse",
        "description": "Response for Astrodynes calculation"
      },
      "AstrologicalData": {
        "properties": {
          "degree": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Degree",
            "description": "Degree within sign (0-29.99) for planetary positions."
          },
          "house": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "House",
            "description": "House number (1-12) if applicable."
          },
          "is_retrograde": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Retrograde",
            "description": "True if planet is in retrograde motion."
          },
          "absolute_longitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Absolute Longitude",
            "description": "Absolute zodiac longitude (0-360)."
          },
          "orb": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Orb",
            "description": "Aspect orb in degrees (for aspect interpretations)."
          }
        },
        "type": "object",
        "title": "AstrologicalData",
        "description": "Detailed astrological data for an interpretation."
      },
      "AstronomicalData": {
        "properties": {
          "magnitude": {
            "type": "number",
            "title": "Magnitude",
            "description": "Eclipse magnitude (fraction of diameter obscured)",
            "examples": [
              1.0565,
              0.091,
              0.873
            ]
          },
          "gamma": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gamma",
            "description": "Distance from Earth's center to eclipse axis",
            "examples": [
              0.3431,
              -0.2453
            ]
          },
          "delta_t": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delta T",
            "description": "Delta T value for time corrections",
            "examples": [
              69.2,
              68.8
            ]
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes",
            "description": "Duration of totality/maximum eclipse in minutes",
            "examples": [
              4.47,
              1.25,
              0
            ]
          },
          "path_width_km": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Path Width Km",
            "description": "Width of totality path in kilometers (solar eclipses only)",
            "examples": [
              198,
              115,
              0
            ]
          }
        },
        "type": "object",
        "required": [
          "magnitude"
        ],
        "title": "AstronomicalData",
        "description": "Astronomical details of the eclipse"
      },
      "BaZiRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/ChineseSubject",
            "description": "Person for BaZi analysis"
          },
          "include_luck_pillars": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Include Luck Pillars",
            "description": "Include 10-year luck periods (automatically True if gender provided)"
          },
          "include_annual_pillars": {
            "type": "boolean",
            "title": "Include Annual Pillars",
            "description": "Include annual analysis within luck periods",
            "default": false
          },
          "current_year": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 2100,
                "minimum": 1900
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Year",
            "description": "Current year for luck pillar calculations"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "classical",
              "modern",
              "simplified"
            ],
            "title": "Tradition",
            "description": "Interpretation tradition",
            "default": "classical"
          },
          "analysis_depth": {
            "type": "string",
            "enum": [
              "basic",
              "standard",
              "comprehensive",
              "professional"
            ],
            "title": "Analysis Depth",
            "description": "Detail level of analysis",
            "default": "standard"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "BaZiRequest",
        "description": "Request for BaZi (Four Pillars) analysis"
      },
      "BirthCardFlexibleRequest": {
        "properties": {
          "birth_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birth Date",
            "description": "Birth date in YYYY-MM-DD format (legacy)"
          },
          "include_interpretation": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Include Interpretation",
            "description": "Include interpretation (legacy)"
          },
          "subject": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject",
            "description": "Subject data (standardized format)"
          },
          "options": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Options",
            "description": "Options data (standardized format)"
          }
        },
        "type": "object",
        "title": "BirthCardFlexibleRequest",
        "description": "Flexible request model supporting both legacy and standardized formats"
      },
      "BirthCardResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "primary_card": {
            "$ref": "#/components/schemas/TarotCard",
            "description": "Primary birth card"
          },
          "secondary_card": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TarotCard"
              },
              {
                "type": "null"
              }
            ],
            "description": "Secondary card if applicable"
          },
          "calculation": {
            "additionalProperties": true,
            "type": "object",
            "title": "Calculation",
            "description": "Calculation details"
          },
          "interpretation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interpretation",
            "description": "Interpretation"
          }
        },
        "type": "object",
        "required": [
          "success",
          "primary_card",
          "calculation"
        ],
        "title": "BirthCardResponse",
        "description": "Response for birth card calculation"
      },
      "BirthData": {
        "properties": {
          "year": {
            "type": "integer",
            "maximum": 2100,
            "minimum": 1900,
            "title": "Year",
            "description": "Birth year"
          },
          "month": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 12,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Month",
            "description": "Birth month (optional for some calculations)"
          },
          "day": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 31,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Day",
            "description": "Birth day (optional for some calculations)"
          },
          "hour": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 23,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hour",
            "description": "Birth hour (24-hour format)",
            "default": 12
          },
          "minute": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 59,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Minute",
            "description": "Birth minute",
            "default": 0
          },
          "second": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 59,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Second",
            "description": "Birth second",
            "default": 0
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City",
            "description": "Birth city name"
          },
          "country_code": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Code",
            "description": "ISO 3166-1 alpha-2 country code"
          },
          "latitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 90,
                "minimum": -90
              },
              {
                "type": "null"
              }
            ],
            "title": "Latitude",
            "description": "Birth location latitude"
          },
          "longitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 180,
                "minimum": -180
              },
              {
                "type": "null"
              }
            ],
            "title": "Longitude",
            "description": "Birth location longitude"
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone",
            "description": "IANA timezone (e.g., 'Europe/London')"
          }
        },
        "type": "object",
        "required": [
          "year"
        ],
        "title": "BirthData",
        "description": "Standardized birth data model\nSupports both city-based and coordinate-based location",
        "example": {
          "city": "London",
          "country_code": "GB",
          "day": 11,
          "hour": 18,
          "minute": 15,
          "month": 5,
          "second": 0,
          "year": 1985
        }
      },
      "Body_analyze_forex_timing_api_v3_insights_financial_forex_timing_post": {
        "properties": {
          "pair": {
            "type": "string",
            "title": "Pair",
            "description": "Currency pair",
            "default": "EUR/USD"
          },
          "trading_session": {
            "type": "string",
            "title": "Trading Session",
            "description": "Trading session: sydney, tokyo, london, newyork",
            "default": "london"
          },
          "forecast_days": {
            "type": "integer",
            "title": "Forecast Days",
            "description": "Days to forecast",
            "default": 7
          }
        },
        "type": "object",
        "title": "Body_analyze_forex_timing_api_v3_insights_financial_forex_timing_post"
      },
      "Body_calculate_business_timing_api_v3_insights_business_business_timing_post": {
        "properties": {
          "activities": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Activities",
            "description": "Activities: product_launch, meetings, negotiations, hiring, restructuring",
            "default": [
              "product_launch",
              "meetings"
            ]
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date",
            "description": "Start of analysis period"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date",
            "description": "End of analysis period"
          },
          "company_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Company incorporation date/location for corporate chart"
          },
          "language": {
            "type": "string",
            "title": "Language",
            "description": "Language code - see /api/v3/glossary/languages for full list",
            "default": "en"
          }
        },
        "type": "object",
        "title": "Body_calculate_business_timing_api_v3_insights_business_business_timing_post"
      },
      "Body_calculate_gann_cycles_api_v3_insights_financial_gann_analysis_post": {
        "properties": {
          "symbol": {
            "type": "string",
            "title": "Symbol",
            "description": "Market symbol or index",
            "default": "SPX"
          },
          "reference_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference Date",
            "description": "Gann cycle reference point"
          },
          "forecast_days": {
            "type": "integer",
            "title": "Forecast Days",
            "description": "Days to forecast (max 365)",
            "default": 90
          }
        },
        "type": "object",
        "title": "Body_calculate_gann_cycles_api_v3_insights_financial_gann_analysis_post"
      },
      "BradleySiderographRequest": {
        "properties": {
          "language": {
            "type": "string",
            "title": "Language",
            "description": "Language for interpretations (en, ru, fr, de, es, it, pt, zh)",
            "default": "en"
          },
          "birth_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Person's birth data (optional for general market analysis)"
          },
          "period": {
            "type": "string",
            "title": "Period",
            "description": "Analysis period: yearly, quarterly, monthly",
            "default": "yearly"
          },
          "market": {
            "type": "string",
            "title": "Market",
            "description": "Market type: stocks, crypto, forex, commodities",
            "default": "stocks"
          },
          "year": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Year",
            "description": "Specific year to analyze (extracted from period if not provided)"
          },
          "analysis_date": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Analysis Date",
            "description": "Analysis date in format {year, month, day} (legacy support)"
          }
        },
        "type": "object",
        "title": "BradleySiderographRequest",
        "description": "Request for Bradley Siderograph analysis - flexible format support"
      },
      "BusinessMultipleRequest": {
        "properties": {
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject"
            },
            "type": "array",
            "maxItems": 10,
            "minItems": 2,
            "title": "Subjects",
            "description": "Subjects for calculation (defaults to 2 test subjects if not provided)"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BusinessOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business-specific options"
          }
        },
        "type": "object",
        "title": "BusinessMultipleRequest",
        "description": "Multiple subjects request with business options",
        "example": {
          "options": {
            "language": "en"
          },
          "subjects": [
            {
              "birth_data": {
                "city": "London",
                "country_code": "GB",
                "day": 11,
                "hour": 18,
                "minute": 15,
                "month": 5,
                "year": 1985
              },
              "name": "Person 1"
            },
            {
              "birth_data": {
                "city": "Paris",
                "country_code": "FR",
                "day": 15,
                "hour": 14,
                "minute": 30,
                "month": 3,
                "year": 1990
              },
              "name": "Person 2"
            }
          ]
        }
      },
      "BusinessOptions": {
        "properties": {
          "house_system": {
            "$ref": "#/components/schemas/HouseSystem",
            "description": "House system to use",
            "default": "P"
          },
          "language": {
            "$ref": "#/components/schemas/Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "$ref": "#/components/schemas/Tradition",
            "description": "Astrological tradition",
            "default": "universal"
          },
          "perspective": {
            "$ref": "#/components/schemas/PerspectiveType",
            "description": "Astronomical calculation perspective. Geocentric (Earth-centered) is traditional astrology. Other perspectives offer specialized insights.",
            "default": "geocentric"
          },
          "detail_level": {
            "$ref": "#/components/schemas/DetailLevel",
            "description": "Level of detail in response",
            "default": "standard"
          },
          "include_interpretations": {
            "type": "boolean",
            "title": "Include Interpretations",
            "description": "Include textual interpretations",
            "default": true
          },
          "include_raw_data": {
            "type": "boolean",
            "title": "Include Raw Data",
            "description": "Include raw astronomical data",
            "default": false
          },
          "use_cache": {
            "type": "boolean",
            "title": "Use Cache",
            "description": "Use cached calculations if available",
            "default": true
          },
          "precision_mode": {
            "type": "boolean",
            "title": "Precision Mode",
            "description": "Use high-precision calculations (slower)",
            "default": false
          },
          "team_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Name",
            "description": "Name of the team",
            "default": "Team"
          },
          "department_focus": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department Focus",
            "description": "Department focus",
            "default": "operations"
          },
          "role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role",
            "description": "Target role for hiring",
            "default": "Team Member"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department",
            "description": "Target department",
            "default": "operations"
          },
          "include_timing": {
            "type": "boolean",
            "title": "Include Timing",
            "description": "Include timing analysis",
            "default": true
          },
          "include_development": {
            "type": "boolean",
            "title": "Include Development",
            "description": "Include development recommendations",
            "default": true
          },
          "current_leader_role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Leader Role",
            "description": "Role of current leader",
            "default": "Current Leader"
          },
          "succession_department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Succession Department",
            "description": "Department for succession",
            "default": "leadership"
          },
          "departments": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Departments",
            "description": "Department configuration - can be list of names ['engineering', 'marketing'] or full config [{'name': 'Engineering', 'type': 'tech', 'members': [0]}]"
          }
        },
        "type": "object",
        "title": "BusinessOptions",
        "description": "Extended options for business insights",
        "example": {
          "house_system": "P",
          "language": "en",
          "perspective": "geocentric",
          "tradition": "universal"
        }
      },
      "BusinessSingleRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject",
            "description": "Subject for calculation"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BusinessOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business-specific options"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "BusinessSingleRequest",
        "description": "Single subject request with business options",
        "example": {
          "options": {
            "house_system": "P",
            "language": "en"
          },
          "subject": {
            "birth_data": {
              "city": "London",
              "country_code": "GB",
              "day": 11,
              "hour": 18,
              "minute": 15,
              "month": 5,
              "year": 1985
            },
            "name": "John Doe"
          }
        }
      },
      "CardPosition": {
        "properties": {
          "position": {
            "type": "integer",
            "title": "Position",
            "description": "Position in spread (1-based)"
          },
          "position_name": {
            "type": "string",
            "title": "Position Name",
            "description": "Name of position"
          },
          "card": {
            "$ref": "#/components/schemas/TarotCard",
            "description": "Card data"
          },
          "orientation": {
            "type": "string",
            "enum": [
              "upright",
              "reversed"
            ],
            "title": "Orientation",
            "description": "Upright or reversed"
          },
          "interpretation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interpretation",
            "description": "Position-specific interpretation"
          },
          "dignity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dignity",
            "description": "Elemental dignity modifier"
          }
        },
        "type": "object",
        "required": [
          "position",
          "position_name",
          "card",
          "orientation"
        ],
        "title": "CardPosition",
        "description": "Card in a specific spread position"
      },
      "CardPositionRequest": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Card ID"
          },
          "position": {
            "type": "integer",
            "title": "Position",
            "description": "Position in spread"
          }
        },
        "type": "object",
        "required": [
          "id",
          "position"
        ],
        "title": "CardPositionRequest",
        "description": "Card with position for elemental dignities"
      },
      "ChartAstrodynesData": {
        "properties": {
          "planets": {
            "items": {
              "$ref": "#/components/schemas/PlanetAstrodyneData"
            },
            "type": "array",
            "title": "Planets",
            "description": "Planet astrodynes sorted by power"
          },
          "signs": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Signs",
            "description": "Sign astrodynes"
          },
          "houses": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Houses",
            "description": "House astrodynes"
          },
          "aspects": {
            "items": {
              "$ref": "#/components/schemas/AspectAstrodyneData"
            },
            "type": "array",
            "title": "Aspects",
            "description": "Aspect astrodynes sorted by power"
          },
          "elements": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ElementAstrodyneData"
            },
            "type": "object",
            "title": "Elements",
            "description": "Element totals (Fire, Earth, Air, Water)"
          },
          "qualities": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ElementAstrodyneData"
            },
            "type": "object",
            "title": "Qualities",
            "description": "Quality totals (Cardinal, Fixed, Mutable)"
          },
          "trinities": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TrinityAstrodyneData"
            },
            "type": "object",
            "title": "Trinities",
            "description": "Trinity totals (Life, Wealth, Association, Psychism)"
          },
          "house_types": {
            "additionalProperties": {
              "$ref": "#/components/schemas/HouseTypeData"
            },
            "type": "object",
            "title": "House Types",
            "description": "House type distribution"
          },
          "totals": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "title": "Totals",
            "description": "Overall totals (power, harmony)"
          }
        },
        "type": "object",
        "required": [
          "planets",
          "signs",
          "houses",
          "aspects",
          "elements",
          "qualities",
          "trinities",
          "house_types",
          "totals"
        ],
        "title": "ChartAstrodynesData",
        "description": "Complete astrodynes for a single chart"
      },
      "ChartData": {
        "properties": {
          "planetary_positions": {
            "items": {
              "$ref": "#/components/schemas/PlanetaryPosition"
            },
            "type": "array",
            "title": "Planetary Positions",
            "description": "A list containing the positions of all calculated celestial points."
          },
          "house_cusps": {
            "items": {
              "$ref": "#/components/schemas/HouseCusp"
            },
            "type": "array",
            "title": "House Cusps",
            "description": "A list of the 12 house cusps."
          },
          "aspects": {
            "items": {
              "$ref": "#/components/schemas/Aspect"
            },
            "type": "array",
            "title": "Aspects",
            "description": "A list of all calculated aspects between the points."
          },
          "fixed_stars": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fixed Stars",
            "description": "Fixed stars data including conjunctions and oppositions to natal planets."
          }
        },
        "type": "object",
        "required": [
          "planetary_positions",
          "house_cusps",
          "aspects"
        ],
        "title": "ChartData"
      },
      "ChartOptions": {
        "properties": {
          "house_system": {
            "type": "string",
            "enum": [
              "P",
              "W",
              "K",
              "A",
              "R",
              "C",
              "B",
              "M",
              "O",
              "E",
              "V",
              "X",
              "H",
              "T",
              "G"
            ],
            "title": "House System",
            "description": "The house system used for calculation. Different systems can place planets in different houses. Common systems: 'P' (Placidus), 'W' (Whole Sign), 'K' (Koch), 'A' (Equal), 'R' (Regiomontanus), 'C' (Campanus).",
            "default": "P"
          },
          "zodiac_type": {
            "type": "string",
            "enum": [
              "Tropic",
              "Sidereal"
            ],
            "title": "Zodiac Type",
            "description": "The zodiac type. 'Tropic' is used in Western astrology. 'Sidereal' is used in Vedic and some Western traditions. Note: The current library version defaults to FAGAN_BRADLEY ayanamsha for Sidereal charts.",
            "default": "Tropic"
          },
          "active_points": {
            "items": {
              "type": "string",
              "enum": [
                "Sun",
                "Moon",
                "Mercury",
                "Venus",
                "Mars",
                "Jupiter",
                "Saturn",
                "Uranus",
                "Neptune",
                "Pluto",
                "Earth",
                "Chiron",
                "Ceres",
                "Pallas",
                "Juno",
                "Vesta",
                "Aphrodite",
                "Persephone",
                "Artemis",
                "Mean_Node",
                "True_Node",
                "Mean_South_Node",
                "True_South_Node",
                "Mean_Lilith",
                "True_Lilith",
                "Ascendant",
                "Medium_Coeli",
                "Descendant",
                "Imum_Coeli",
                "Vertex",
                "Part_of_Fortune",
                "Part_of_Spirit",
                "Aldebaran",
                "Regulus",
                "Antares",
                "Fomalhaut",
                "Sirius",
                "Arcturus",
                "Vega",
                "Capella",
                "Spica",
                "Procyon",
                "Algol",
                "Rigel",
                "Betelgeuse",
                "Altair",
                "Pollux",
                "Deneb",
                "Castor",
                "Bellatrix",
                "Alnilam",
                "Alioth",
                "Mirach",
                "Hamal",
                "Achernar"
              ]
            },
            "type": "array",
            "title": "Active Points",
            "description": "🆕 List of celestial points to include. Now supports traditional points! New in v3.0.0: Part_of_Fortune, Part_of_Spirit, True_Lilith for Hellenistic astrology.",
            "examples": [
              [
                "Sun",
                "Moon",
                "Mercury",
                "Venus",
                "Mars",
                "Jupiter",
                "Saturn"
              ],
              [
                "Sun",
                "Moon",
                "Mean_Node",
                "True_Node",
                "Mean_South_Node",
                "True_South_Node"
              ],
              [
                "Sun",
                "Moon",
                "Ascendant",
                "Medium_Coeli",
                "Chiron",
                "Mean_Lilith"
              ],
              [
                "Sun",
                "Moon",
                "Mercury",
                "Venus",
                "Mars",
                "Part_of_Fortune",
                "Part_of_Spirit"
              ]
            ]
          },
          "precision": {
            "type": "integer",
            "maximum": 8,
            "minimum": 0,
            "title": "Precision",
            "description": "🆕 Number of decimal places for degree values (0-8). Controls precision of all degree measurements including absolute longitude.",
            "default": 2,
            "examples": [
              2,
              4,
              6
            ]
          },
          "return_year": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Return Year",
            "description": "Year for solar return calculations. When specified, overrides the subject's birth year for return chart calculations.",
            "examples": [
              2024,
              2025,
              2023
            ]
          },
          "return_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Return Date",
            "description": "Alternative date format for return calculations. Can be used instead of return_year for more precise timing.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ]
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Date",
            "description": "Target date for progression calculations. Specifies the date for which progressed positions should be calculated.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ]
          },
          "perspective": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Perspective",
            "description": "Astronomical calculation perspective. 'geocentric' (Earth-centered, traditional), 'heliocentric' (Sun-centered), 'draconic' (Moon's Node as 0° Aries), 'barycentric' (solar system center).",
            "default": "geocentric",
            "examples": [
              "geocentric",
              "heliocentric",
              "draconic",
              "barycentric"
            ]
          },
          "fixed_stars": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FixedStarsConfig"
              },
              {
                "type": "null"
              }
            ],
            "description": "🌟 Fixed stars configuration. Specify presets to include fixed star positions and conjunctions/oppositions to natal planets.",
            "examples": [
              {
                "presets": [
                  "essential"
                ]
              },
              {
                "presets": [
                  "essential",
                  "traditional"
                ]
              },
              {
                "include_parans": true,
                "presets": [
                  "behenian"
                ]
              }
            ]
          }
        },
        "type": "object",
        "title": "ChartOptions"
      },
      "ChineseBaZiHoroscopeRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for BaZi analysis"
          },
          "year": {
            "type": "integer",
            "title": "Year"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "default": "en"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "ChineseBaZiHoroscopeRequest"
      },
      "ChineseBirthData": {
        "properties": {
          "year": {
            "type": "integer",
            "maximum": 2100,
            "minimum": 1900,
            "title": "Year",
            "description": "Year of birth",
            "examples": [
              1990,
              1985,
              2000
            ]
          },
          "month": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 12,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Month",
            "description": "Month (1-12) - for detailed analysis"
          },
          "day": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 31,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Day",
            "description": "Day (1-31) - for detailed analysis"
          },
          "hour": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 23,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hour",
            "description": "Hour (0-23) - for detailed analysis"
          },
          "minute": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 59,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Minute",
            "description": "Minute (0-59) - for detailed analysis"
          },
          "second": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 59,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Second",
            "description": "Second (0-59)",
            "default": 0
          },
          "latitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latitude",
            "description": "Latitude (-90 to 90)"
          },
          "longitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Longitude",
            "description": "Longitude (-180 to 180)"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City",
            "description": "City name for automatic coordinate lookup"
          },
          "country_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Code",
            "description": "Country code (ISO 3166-1 alpha-2)"
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone",
            "description": "Timezone (e.g., 'Asia/Shanghai')"
          }
        },
        "type": "object",
        "required": [
          "year"
        ],
        "title": "ChineseBirthData",
        "description": "Birth data for Chinese astrology - only year is required for basic analysis"
      },
      "ChineseSubject": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Name of the person",
            "default": "Subject",
            "examples": [
              "Zhang Wei",
              "Li Ming",
              "Test User"
            ]
          },
          "birth_data": {
            "$ref": "#/components/schemas/ChineseBirthData",
            "description": "Birth data (only year required for basic analysis)"
          },
          "gender": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "male",
                  "female"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Gender",
            "description": "Gender (male/female) - required for luck pillars and Ming Gua"
          }
        },
        "type": "object",
        "required": [
          "birth_data"
        ],
        "title": "ChineseSubject",
        "description": "Subject for Chinese astrology with flexible birth data requirements"
      },
      "ChineseYearlyRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/ChineseSubject",
            "description": "Person for yearly forecast"
          },
          "forecast_year": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 2100,
                "minimum": 1900
              },
              {
                "type": "null"
              }
            ],
            "title": "Forecast Year",
            "description": "Year to forecast (defaults to current year)"
          },
          "include_monthly": {
            "type": "boolean",
            "title": "Include Monthly",
            "description": "Include monthly breakdown",
            "default": true
          },
          "include_advice": {
            "type": "boolean",
            "title": "Include Advice",
            "description": "Include practical advice",
            "default": true
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Response language",
            "default": "en"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "ChineseYearlyRequest",
        "description": "Request for Chinese yearly forecast"
      },
      "ChronoCratorData": {
        "properties": {
          "method": {
            "type": "string",
            "title": "Method",
            "description": "Calculation method (Annual Profection)"
          },
          "year_age": {
            "type": "integer",
            "title": "Year Age",
            "description": "Current age"
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Activated sign"
          },
          "ruler": {
            "type": "string",
            "title": "Ruler",
            "description": "Traditional ruler (Chronocrator)"
          },
          "co_ruler": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Co Ruler",
            "description": "Modern co-ruler"
          },
          "house_themes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "House Themes",
            "description": "Themes for the activated house"
          }
        },
        "type": "object",
        "required": [
          "method",
          "year_age",
          "sign",
          "ruler",
          "house_themes"
        ],
        "title": "ChronoCratorData",
        "description": "Annual Profection / Lord of the Year data"
      },
      "CitySelectionStats": {
        "properties": {
          "algorithm_used": {
            "type": "string",
            "title": "Algorithm Used",
            "description": "City selection algorithm"
          },
          "total_candidates": {
            "type": "integer",
            "title": "Total Candidates",
            "description": "Total cities considered"
          },
          "selected_count": {
            "type": "integer",
            "title": "Selected Count",
            "description": "Number of cities selected"
          },
          "countries_represented": {
            "type": "integer",
            "title": "Countries Represented",
            "description": "Number of different countries"
          },
          "geographic_diversity_score": {
            "type": "number",
            "title": "Geographic Diversity Score",
            "description": "Geographic diversity score 0-1"
          },
          "selection_criteria": {
            "additionalProperties": true,
            "type": "object",
            "title": "Selection Criteria",
            "description": "Applied selection criteria"
          }
        },
        "type": "object",
        "required": [
          "algorithm_used",
          "total_candidates",
          "selected_count",
          "countries_represented",
          "geographic_diversity_score",
          "selection_criteria"
        ],
        "title": "CitySelectionStats",
        "description": "Statistics about city selection process"
      },
      "CompareLocationsRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for comparison"
          },
          "locations": {
            "items": {
              "$ref": "#/components/schemas/LocationInput"
            },
            "type": "array",
            "maxItems": 10,
            "minItems": 2,
            "title": "Locations",
            "description": "Locations to compare (2-10 locations)"
          },
          "comparison_criteria": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comparison Criteria",
            "description": "Comparison criteria: life_areas (default: all 13 areas), include_detailed_breakdown (default: True)"
          }
        },
        "type": "object",
        "required": [
          "subject",
          "locations"
        ],
        "title": "CompareLocationsRequest",
        "description": "Request for comparing multiple locations"
      },
      "CompareLocationsResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "locations": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Locations",
            "description": "Detailed analysis for each location"
          },
          "comparison_matrix": {
            "additionalProperties": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            "type": "object",
            "title": "Comparison Matrix",
            "description": "Life areas x locations matrix with scores and ranks"
          },
          "rankings": {
            "additionalProperties": true,
            "type": "object",
            "title": "Rankings",
            "description": "Overall and per-area rankings"
          },
          "best_overall": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Best Overall",
            "description": "Highest scoring location overall"
          },
          "recommendations": {
            "additionalProperties": true,
            "type": "object",
            "title": "Recommendations",
            "description": "Best locations for each life area and balanced choices"
          },
          "summary": {
            "type": "string",
            "title": "Summary",
            "description": "Human-readable comparison summary"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Calculation metadata"
          }
        },
        "type": "object",
        "required": [
          "locations",
          "comparison_matrix",
          "rankings",
          "recommendations",
          "summary",
          "metadata"
        ],
        "title": "CompareLocationsResponse",
        "description": "Response for location comparison"
      },
      "CompatibilityRequest": {
        "properties": {
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject"
            },
            "type": "array",
            "maxItems": 10,
            "minItems": 2,
            "title": "Subjects",
            "description": "Subjects for calculation (defaults to 2 test subjects if not provided)"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StandardOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Request options"
          },
          "compatibility_options": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Compatibility Options",
            "description": "Compatibility-specific options",
            "example": {
              "calculation_method": "synastry",
              "include_composite": true,
              "include_davison": false
            }
          }
        },
        "type": "object",
        "title": "CompatibilityRequest",
        "description": "Request model for compatibility calculations",
        "example": {
          "options": {
            "language": "en"
          },
          "subjects": [
            {
              "birth_data": {
                "city": "London",
                "country_code": "GB",
                "day": 11,
                "hour": 18,
                "minute": 15,
                "month": 5,
                "year": 1985
              },
              "name": "Person 1"
            },
            {
              "birth_data": {
                "city": "Paris",
                "country_code": "FR",
                "day": 15,
                "hour": 14,
                "minute": 30,
                "month": 3,
                "year": 1990
              },
              "name": "Person 2"
            }
          ]
        }
      },
      "CompositeChartRenderRequest": {
        "properties": {
          "subject1": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "First person's birth data for composite chart calculation.",
            "examples": [
              {
                "birth_data": {
                  "city": "London",
                  "day": 15,
                  "hour": 14,
                  "minute": 30,
                  "month": 3,
                  "nation": "GB",
                  "timezone": "Europe/London",
                  "year": 1990
                },
                "name": "Alice Johnson"
              }
            ]
          },
          "subject2": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Second person's birth data for composite chart calculation.",
            "examples": [
              {
                "birth_data": {
                  "city": "Paris",
                  "day": 22,
                  "hour": 9,
                  "minute": 45,
                  "month": 7,
                  "nation": "FR",
                  "timezone": "Europe/Paris",
                  "year": 1988
                },
                "name": "Bob Smith"
              }
            ]
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Chart calculation options including house system, zodiac type, active points, and precision."
          },
          "render_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RenderOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "CompositeChartRenderRequest",
        "description": "Request for rendering composite chart in multiple formats (SVG, PNG, JPG, WebP, PDF)"
      },
      "CompositeChartRequest": {
        "properties": {
          "subject1": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "First person's birth data for composite chart calculation.",
            "examples": [
              {
                "birth_data": {
                  "city": "London",
                  "day": 15,
                  "hour": 14,
                  "minute": 30,
                  "month": 3,
                  "nation": "GB",
                  "timezone": "Europe/London",
                  "year": 1990
                },
                "name": "Alice Johnson"
              }
            ]
          },
          "subject2": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Second person's birth data for composite chart calculation.",
            "examples": [
              {
                "birth_data": {
                  "city": "Paris",
                  "day": 22,
                  "hour": 9,
                  "minute": 45,
                  "month": 7,
                  "nation": "FR",
                  "timezone": "Europe/Paris",
                  "year": 1988
                },
                "name": "Bob Smith"
              }
            ]
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Chart calculation options including house system, zodiac type, active points, and precision."
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "CompositeChartRequest"
      },
      "CompositeChartResponse": {
        "properties": {
          "subject_data": {
            "$ref": "#/components/schemas/CompositeData",
            "description": "Data for both subjects and the resulting composite chart."
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data for the composite chart including planetary positions, house cusps, and aspects."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "chart_data"
        ],
        "title": "CompositeChartResponse"
      },
      "CompositeChartSVGRequest": {
        "properties": {
          "subject1": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "First person's birth data for composite chart calculation.",
            "examples": [
              {
                "birth_data": {
                  "city": "London",
                  "day": 15,
                  "hour": 14,
                  "minute": 30,
                  "month": 3,
                  "nation": "GB",
                  "timezone": "Europe/London",
                  "year": 1990
                },
                "name": "Alice Johnson"
              }
            ]
          },
          "subject2": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Second person's birth data for composite chart calculation.",
            "examples": [
              {
                "birth_data": {
                  "city": "Paris",
                  "day": 22,
                  "hour": 9,
                  "minute": 45,
                  "month": 7,
                  "nation": "FR",
                  "timezone": "Europe/Paris",
                  "year": 1988
                },
                "name": "Bob Smith"
              }
            ]
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Chart calculation options including house system, zodiac type, active points, and precision."
          },
          "svg_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SVGOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "CompositeChartSVGRequest"
      },
      "CompositeData": {
        "properties": {
          "subject1": {
            "title": "Subject1",
            "description": "Detailed raw data for the first subject."
          },
          "subject2": {
            "title": "Subject2",
            "description": "Detailed raw data for the second subject."
          },
          "composite_subject": {
            "title": "Composite Subject",
            "description": "Detailed raw data for the composite chart (midpoint calculations)."
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2",
          "composite_subject"
        ],
        "title": "CompositeData"
      },
      "CompositeReportRequest": {
        "properties": {
          "subject1": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "First person's birth data for composite chart calculation.",
            "examples": [
              {
                "birth_data": {
                  "city": "London",
                  "day": 15,
                  "hour": 14,
                  "minute": 30,
                  "month": 3,
                  "nation": "GB",
                  "timezone": "Europe/London",
                  "year": 1990
                },
                "name": "Alice Johnson"
              }
            ]
          },
          "subject2": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Second person's birth data for composite chart calculation.",
            "examples": [
              {
                "birth_data": {
                  "city": "Paris",
                  "day": 22,
                  "hour": 9,
                  "minute": 45,
                  "month": 7,
                  "nation": "FR",
                  "timezone": "Europe/Paris",
                  "year": 1988
                },
                "name": "Bob Smith"
              }
            ]
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Chart calculation options including house system, zodiac type, active points, and precision."
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Report generation options including tradition and language."
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "CompositeReportRequest"
      },
      "CompositeReportResponse": {
        "properties": {
          "subject_data": {
            "$ref": "#/components/schemas/CompositeData",
            "description": "Data for both subjects and the resulting composite chart."
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/Interpretation"
            },
            "type": "array",
            "title": "Interpretations",
            "description": "Interpretations for the composite chart."
          },
          "life_area_compatibility": {
            "items": {
              "$ref": "#/components/schemas/LifeAreaCompatibility"
            },
            "type": "array",
            "title": "Life Area Compatibility",
            "description": "Compatibility analysis by life areas."
          },
          "overall_compatibility_score": {
            "type": "number",
            "maximum": 1,
            "minimum": 0,
            "title": "Overall Compatibility Score",
            "description": "Overall relationship compatibility score from 0.0 to 1.0."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "interpretations",
          "life_area_compatibility",
          "overall_compatibility_score"
        ],
        "title": "CompositeReportResponse",
        "description": "The response for a composite chart report with relationship analysis."
      },
      "CryptoTimingRequest": {
        "properties": {
          "cryptocurrency": {
            "type": "string",
            "title": "Cryptocurrency",
            "default": "bitcoin"
          },
          "analysis_period_days": {
            "type": "integer",
            "title": "Analysis Period Days",
            "default": 30
          },
          "include_volatility_forecast": {
            "type": "boolean",
            "title": "Include Volatility Forecast",
            "default": true
          },
          "language": {
            "type": "string",
            "title": "Language",
            "default": "en"
          }
        },
        "type": "object",
        "title": "CryptoTimingRequest",
        "description": "Request for crypto timing analysis"
      },
      "CustomColors": {
        "properties": {
          "background": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Background",
            "description": "Chart background color",
            "examples": [
              "#1a1a2e",
              "#ffffff",
              "#0f0f23"
            ]
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text",
            "description": "Main text and lines color",
            "examples": [
              "#eaeaea",
              "#333333",
              "#e0e0e0"
            ]
          },
          "primary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary",
            "description": "Primary accent color (planets, highlights)",
            "examples": [
              "#38bdf8",
              "#6366f1",
              "#22c55e"
            ]
          },
          "secondary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Secondary",
            "description": "Secondary accent color",
            "examples": [
              "#818cf8",
              "#ec4899",
              "#f59e0b"
            ]
          },
          "aspect_harmony": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aspect Harmony",
            "description": "Color for harmonious aspects (trine, sextile, conjunction)",
            "examples": [
              "#22c55e",
              "#10b981",
              "#00ff88"
            ]
          },
          "aspect_tension": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aspect Tension",
            "description": "Color for tense aspects (square, opposition)",
            "examples": [
              "#ef4444",
              "#f43f5e",
              "#ff4444"
            ]
          },
          "zodiac_bg_0": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zodiac Bg 0",
            "description": "First zodiac sector background color (Aries, Gemini, Leo...)",
            "examples": [
              "#2d2d44",
              "#f0f0f0",
              "#1e293b"
            ]
          },
          "zodiac_bg_1": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zodiac Bg 1",
            "description": "Second zodiac sector background color (Taurus, Cancer, Virgo...)",
            "examples": [
              "#3d3d5c",
              "#e0e0e0",
              "#334155"
            ]
          }
        },
        "type": "object",
        "title": "CustomColors",
        "description": "Custom color overrides for chart rendering.\nAll colors should be valid CSS color values (hex, rgb, hsl).\nOnly specified colors will be overridden; others use theme defaults."
      },
      "DataOptions": {
        "properties": {
          "house_system": {
            "$ref": "#/components/schemas/HouseSystem",
            "description": "House system to use",
            "default": "P"
          },
          "language": {
            "$ref": "#/components/schemas/Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "$ref": "#/components/schemas/Tradition",
            "description": "Astrological tradition",
            "default": "universal"
          },
          "perspective": {
            "$ref": "#/components/schemas/PerspectiveType",
            "description": "Astronomical calculation perspective. Geocentric (Earth-centered) is traditional astrology. Other perspectives offer specialized insights.",
            "default": "geocentric"
          },
          "detail_level": {
            "$ref": "#/components/schemas/DetailLevel",
            "description": "Level of detail in response",
            "default": "standard"
          },
          "include_interpretations": {
            "type": "boolean",
            "title": "Include Interpretations",
            "description": "Include textual interpretations",
            "default": true
          },
          "include_raw_data": {
            "type": "boolean",
            "title": "Include Raw Data",
            "description": "Include raw astronomical data",
            "default": false
          },
          "use_cache": {
            "type": "boolean",
            "title": "Use Cache",
            "description": "Use cached calculations if available",
            "default": true
          },
          "precision_mode": {
            "type": "boolean",
            "title": "Precision Mode",
            "description": "Use high-precision calculations (slower)",
            "default": false
          },
          "zodiac_type": {
            "type": "string",
            "title": "Zodiac Type",
            "description": "Zodiac type (Tropic/Sidereal)",
            "default": "Tropic"
          },
          "active_points": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Active Points",
            "description": "List of celestial bodies to include in calculations"
          },
          "precision": {
            "type": "integer",
            "maximum": 8,
            "minimum": 0,
            "title": "Precision",
            "description": "Number of decimal places for degree values",
            "default": 2
          }
        },
        "type": "object",
        "title": "DataOptions",
        "description": "Extended options for data endpoints that include astrological calculation options",
        "example": {
          "house_system": "P",
          "language": "en",
          "perspective": "geocentric",
          "tradition": "universal"
        }
      },
      "DataRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject",
            "description": "Subject for calculation"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DataOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Data calculation options"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "DataRequest",
        "description": "Standard data request model that extends SingleSubjectRequest with data-specific options",
        "example": {
          "options": {
            "house_system": "P",
            "language": "en"
          },
          "subject": {
            "birth_data": {
              "city": "London",
              "country_code": "GB",
              "day": 11,
              "hour": 18,
              "minute": 15,
              "month": 5,
              "year": 1985
            },
            "name": "John Doe"
          }
        }
      },
      "Date": {
        "properties": {
          "year": {
            "type": "integer",
            "title": "Year",
            "description": "Year (e.g., 2024).",
            "examples": [
              2024,
              1990,
              1985
            ]
          },
          "month": {
            "type": "integer",
            "title": "Month",
            "description": "Month (1-12).",
            "examples": [
              3,
              7,
              12
            ]
          },
          "day": {
            "type": "integer",
            "title": "Day",
            "description": "Day (1-31).",
            "examples": [
              15,
              21,
              8
            ]
          }
        },
        "type": "object",
        "required": [
          "year",
          "month",
          "day"
        ],
        "title": "Date"
      },
      "DateRange": {
        "properties": {
          "start_date": {
            "$ref": "#/components/schemas/Date",
            "description": "The start date for the transit search.",
            "examples": [
              {
                "day": 1,
                "month": 3,
                "year": 2024
              }
            ]
          },
          "end_date": {
            "$ref": "#/components/schemas/Date",
            "description": "The end date for the transit search.",
            "examples": [
              {
                "day": 31,
                "month": 3,
                "year": 2024
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "start_date",
          "end_date"
        ],
        "title": "DateRange"
      },
      "DateTimeLocation": {
        "properties": {
          "year": {
            "type": "integer",
            "title": "Year",
            "description": "Year of the event (e.g., 1990).",
            "examples": [
              2024,
              1990,
              1985
            ]
          },
          "month": {
            "type": "integer",
            "title": "Month",
            "description": "Month of the event (1-12).",
            "examples": [
              3,
              7,
              12
            ]
          },
          "day": {
            "type": "integer",
            "title": "Day",
            "description": "Day of the event (1-31).",
            "examples": [
              15,
              21,
              8
            ]
          },
          "hour": {
            "type": "integer",
            "title": "Hour",
            "description": "Hour of the event (0-23).",
            "examples": [
              20,
              14,
              9
            ]
          },
          "minute": {
            "type": "integer",
            "title": "Minute",
            "description": "Minute of the event (0-59).",
            "examples": [
              30,
              15,
              45
            ]
          },
          "second": {
            "type": "integer",
            "title": "Second",
            "description": "🆕 Second of the event (0-59). Optional with default 0.",
            "default": 0,
            "examples": [
              0,
              30,
              15
            ]
          },
          "latitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latitude",
            "description": "Latitude of the location (-90 to 90 degrees). Required if city is not provided. Use positive for North, negative for South.",
            "examples": [
              40.7128,
              51.5074,
              -33.8688
            ]
          },
          "longitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Longitude",
            "description": "Longitude of the location (-180 to 180 degrees). Required if city is not provided. Use positive for East, negative for West.",
            "examples": [
              -74.006,
              -0.1278,
              151.2093
            ]
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City",
            "description": "City name for automatic coordinate and timezone lookup.",
            "examples": [
              "London",
              "Paris",
              "Tokyo"
            ]
          },
          "country_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Code",
            "description": "Country code (ISO 3166-1 alpha-2). Recommended for accuracy.",
            "examples": [
              "GB",
              "FR",
              "JP"
            ]
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone",
            "description": "Timezone name from the TZ Database (e.g., 'Europe/London'). Required if city is not provided.",
            "examples": [
              "Europe/London",
              "Europe/Paris",
              "Asia/Tokyo"
            ]
          }
        },
        "type": "object",
        "required": [
          "year",
          "month",
          "day",
          "hour",
          "minute"
        ],
        "title": "DateTimeLocation"
      },
      "DetailLevel": {
        "type": "string",
        "enum": [
          "basic",
          "standard",
          "full",
          "professional"
        ],
        "title": "DetailLevel",
        "description": "Level of detail in responses"
      },
      "DignityCalculation": {
        "properties": {
          "position": {
            "type": "integer",
            "title": "Position",
            "description": "Card position"
          },
          "card_id": {
            "type": "string",
            "title": "Card Id",
            "description": "Card ID"
          },
          "element": {
            "type": "string",
            "title": "Element",
            "description": "Card element"
          },
          "strength": {
            "type": "number",
            "title": "Strength",
            "description": "Dignity strength (0.5-2.0)"
          },
          "quality": {
            "type": "string",
            "title": "Quality",
            "description": "Quality description"
          },
          "influencing_cards": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Influencing Cards",
            "description": "Cards influencing this dignity"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Dignity description"
          }
        },
        "type": "object",
        "required": [
          "position",
          "card_id",
          "element",
          "strength",
          "quality",
          "influencing_cards",
          "description"
        ],
        "title": "DignityCalculation",
        "description": "Individual dignity calculation result"
      },
      "DirectionChartResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data",
            "description": "Data of the natal chart subject."
          },
          "directed_data": {
            "title": "Directed Data",
            "description": "Data of the directed chart."
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data for the directed positions."
          },
          "direction_type": {
            "type": "string",
            "title": "Direction Type",
            "description": "Type of direction used."
          },
          "arc_used": {
            "type": "number",
            "title": "Arc Used",
            "description": "Arc in degrees used for the directions."
          },
          "target_date": {
            "type": "string",
            "title": "Target Date",
            "description": "Target date for the directions."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "directed_data",
          "chart_data",
          "direction_type",
          "arc_used",
          "target_date"
        ],
        "title": "DirectionChartResponse",
        "description": "The response for a direction chart calculation."
      },
      "DirectionReportRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "target_date": {
            "type": "string",
            "format": "date",
            "title": "Target Date",
            "description": "The date for which to calculate directions.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ],
            "example": "2024-03-15"
          },
          "direction_type": {
            "type": "string",
            "enum": [
              "solar_arc",
              "symbolic",
              "profection",
              "naibod"
            ],
            "title": "Direction Type",
            "description": "Type of direction calculation.",
            "default": "solar_arc"
          },
          "arc_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Arc Rate",
            "description": "Custom arc rate in degrees per year. Only used for custom symbolic directions."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "target_date"
        ],
        "title": "DirectionReportRequest"
      },
      "DirectionReportResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data",
            "description": "Data of the natal chart subject."
          },
          "directed_data": {
            "title": "Directed Data",
            "description": "Data of the directed chart."
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data for the directed positions."
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/Interpretation"
            },
            "type": "array",
            "title": "Interpretations",
            "description": "Interpretations for the directions."
          },
          "direction_type": {
            "type": "string",
            "title": "Direction Type",
            "description": "Type of direction used."
          },
          "arc_used": {
            "type": "number",
            "title": "Arc Used",
            "description": "Arc in degrees used for the directions."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "directed_data",
          "chart_data",
          "interpretations",
          "direction_type",
          "arc_used"
        ],
        "title": "DirectionReportResponse",
        "description": "The response for a direction analysis with interpretations."
      },
      "DirectionRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "target_date": {
            "type": "string",
            "format": "date",
            "title": "Target Date",
            "description": "The date for which to calculate directions.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ],
            "example": "2024-03-15"
          },
          "direction_type": {
            "type": "string",
            "enum": [
              "solar_arc",
              "symbolic",
              "profection",
              "naibod"
            ],
            "title": "Direction Type",
            "description": "Type of direction calculation.",
            "default": "solar_arc"
          },
          "arc_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Arc Rate",
            "description": "Custom arc rate in degrees per year. Only used for custom symbolic directions."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "target_date"
        ],
        "title": "DirectionRequest"
      },
      "DrawCardsRequest": {
        "properties": {
          "count": {
            "type": "integer",
            "maximum": 78,
            "minimum": 1,
            "title": "Count",
            "description": "Number of cards to draw",
            "default": 1
          },
          "exclude_reversed": {
            "type": "boolean",
            "title": "Exclude Reversed",
            "description": "Exclude reversed orientations",
            "default": false
          },
          "life_area": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Life Area",
            "description": "Filter by life area relevance"
          },
          "exclude_majors": {
            "type": "boolean",
            "title": "Exclude Majors",
            "description": "Exclude Major Arcana",
            "default": false
          },
          "exclude_minors": {
            "type": "boolean",
            "title": "Exclude Minors",
            "description": "Exclude Minor Arcana",
            "default": false
          }
        },
        "type": "object",
        "title": "DrawCardsRequest",
        "description": "Request for drawing random cards"
      },
      "EclipseInfo": {
        "properties": {
          "eclipse_id": {
            "type": "string",
            "title": "Eclipse Id",
            "description": "NASA format eclipse ID",
            "examples": [
              "2024Apr08T",
              "2024Sep18P",
              "2025Mar29T"
            ]
          },
          "nasa_catalog_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nasa Catalog Number",
            "description": "NASA eclipse catalog number",
            "examples": [
              "09571",
              "09572"
            ]
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "title": "Date",
            "description": "UTC date and time of maximum eclipse"
          },
          "type": {
            "type": "string",
            "enum": [
              "solar_total",
              "solar_annular",
              "solar_partial",
              "solar_hybrid",
              "lunar_total",
              "lunar_partial",
              "lunar_penumbral"
            ],
            "title": "Type",
            "description": "Type of eclipse"
          },
          "saros_series": {
            "type": "integer",
            "title": "Saros Series",
            "description": "Saros series number"
          },
          "saros_member": {
            "type": "integer",
            "title": "Saros Member",
            "description": "Member number in the Saros series"
          },
          "zodiac_position": {
            "$ref": "#/components/schemas/ZodiacPosition",
            "description": "Zodiac position of the eclipse"
          },
          "magnitude": {
            "type": "number",
            "title": "Magnitude",
            "description": "Eclipse magnitude"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes",
            "description": "Duration in minutes (totality/maximum)"
          },
          "visibility_regions": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Visibility Regions",
            "description": "Geographic regions where eclipse is visible"
          },
          "astrological_impact": {
            "type": "string",
            "enum": [
              "mild",
              "moderate",
              "strong",
              "major"
            ],
            "title": "Astrological Impact",
            "description": "General astrological impact level"
          },
          "keywords": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Keywords",
            "description": "Key astrological themes"
          }
        },
        "type": "object",
        "required": [
          "eclipse_id",
          "date",
          "type",
          "saros_series",
          "saros_member",
          "zodiac_position",
          "magnitude",
          "visibility_regions",
          "astrological_impact",
          "keywords"
        ],
        "title": "EclipseInfo",
        "description": "Basic eclipse information"
      },
      "EclipseInterpretation": {
        "properties": {
          "general": {
            "type": "string",
            "title": "General",
            "description": "General interpretation of the eclipse"
          },
          "personal": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Personal",
            "description": "Personal interpretation based on birth data"
          },
          "timing_windows": {
            "$ref": "#/components/schemas/TimingWindows",
            "description": "Important timing periods"
          },
          "advice": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Advice",
            "description": "Practical advice for working with eclipse energy"
          }
        },
        "type": "object",
        "required": [
          "general",
          "timing_windows",
          "advice"
        ],
        "title": "EclipseInterpretation",
        "description": "Complete eclipse interpretation"
      },
      "EclipseInterpretationRequest": {
        "properties": {
          "eclipse_id": {
            "type": "string",
            "minLength": 10,
            "pattern": "^\\d{4}[A-Z][a-z]{2}\\d{2}[TAPHE]$",
            "title": "Eclipse Id",
            "description": "NASA format eclipse ID",
            "examples": [
              "2024Apr08T",
              "2024Sep18P"
            ]
          },
          "birth_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional birth data for personalized interpretation"
          }
        },
        "type": "object",
        "required": [
          "eclipse_id"
        ],
        "title": "EclipseInterpretationRequest",
        "description": "Request for detailed eclipse interpretation"
      },
      "EclipseInterpretationResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status",
            "default": true
          },
          "eclipse_id": {
            "type": "string",
            "title": "Eclipse Id",
            "description": "NASA format eclipse ID"
          },
          "nasa_catalog_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nasa Catalog Number",
            "description": "NASA catalog reference"
          },
          "type": {
            "type": "string",
            "title": "Type",
            "description": "Eclipse type description"
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "title": "Date",
            "description": "Eclipse date and time"
          },
          "saros_information": {
            "$ref": "#/components/schemas/SarosInfo",
            "description": "Saros series information"
          },
          "astronomical_data": {
            "$ref": "#/components/schemas/AstronomicalData",
            "description": "Astronomical details"
          },
          "astrological_data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Astrological Data",
            "description": "Astrological significance"
          },
          "interpretation": {
            "$ref": "#/components/schemas/EclipseInterpretation",
            "description": "Detailed interpretation"
          },
          "historical_context": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Historical Context",
            "description": "Historical Saros context"
          }
        },
        "type": "object",
        "required": [
          "eclipse_id",
          "type",
          "date",
          "saros_information",
          "astronomical_data",
          "astrological_data",
          "interpretation"
        ],
        "title": "EclipseInterpretationResponse",
        "description": "Response with detailed eclipse interpretation"
      },
      "EclipseNatalCheckRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data of the person"
          },
          "date_range": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateRange"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date range to search for eclipses. If not provided, searches next 365 days"
          },
          "max_orb": {
            "type": "number",
            "maximum": 15,
            "minimum": 0.1,
            "title": "Max Orb",
            "description": "Maximum orb in degrees for natal contacts",
            "default": 5,
            "examples": [
              1,
              3,
              5
            ]
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "EclipseNatalCheckRequest",
        "description": "Request to check eclipse impact on natal chart"
      },
      "EclipseNatalCheckResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status",
            "default": true
          },
          "subject_name": {
            "type": "string",
            "title": "Subject Name",
            "description": "Name of the person"
          },
          "search_period": {
            "type": "string",
            "title": "Search Period",
            "description": "Date range searched"
          },
          "impactful_eclipses": {
            "items": {
              "$ref": "#/components/schemas/ImpactfulEclipse"
            },
            "type": "array",
            "title": "Impactful Eclipses",
            "description": "Eclipses with significant impact"
          },
          "next_important_eclipse": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ImpactfulEclipse"
              },
              {
                "type": "null"
              }
            ],
            "description": "Most significant upcoming eclipse"
          }
        },
        "type": "object",
        "required": [
          "subject_name",
          "search_period",
          "impactful_eclipses"
        ],
        "title": "EclipseNatalCheckResponse",
        "description": "Response for natal eclipse impact check"
      },
      "EclipseUpcomingResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status",
            "default": true
          },
          "eclipses": {
            "items": {
              "$ref": "#/components/schemas/EclipseInfo"
            },
            "type": "array",
            "title": "Eclipses",
            "description": "List of upcoming eclipses"
          }
        },
        "type": "object",
        "required": [
          "eclipses"
        ],
        "title": "EclipseUpcomingResponse",
        "description": "Response with upcoming eclipses"
      },
      "ElementAstrodyneData": {
        "properties": {
          "power": {
            "type": "number",
            "title": "Power",
            "description": "Total power"
          },
          "harmony": {
            "type": "number",
            "title": "Harmony",
            "description": "Total harmony"
          },
          "percentage": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percentage",
            "description": "Percentage of total"
          }
        },
        "type": "object",
        "required": [
          "power",
          "harmony"
        ],
        "title": "ElementAstrodyneData",
        "description": "Astrodyne data for an element"
      },
      "ElementalDignitiesRequest": {
        "properties": {
          "cards": {
            "items": {
              "$ref": "#/components/schemas/CardPositionRequest"
            },
            "type": "array",
            "title": "Cards",
            "description": "Cards with positions"
          },
          "spread_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spread Type",
            "description": "Type of spread for context"
          }
        },
        "type": "object",
        "required": [
          "cards"
        ],
        "title": "ElementalDignitiesRequest",
        "description": "Request for elemental dignities calculation"
      },
      "ElementalDignitiesResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "dignities": {
            "items": {
              "$ref": "#/components/schemas/DignityCalculation"
            },
            "type": "array",
            "title": "Dignities",
            "description": "Individual dignity calculations"
          },
          "overall_elemental_balance": {
            "additionalProperties": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "object",
            "title": "Overall Elemental Balance",
            "description": "Overall elemental balance"
          },
          "analysis": {
            "additionalProperties": true,
            "type": "object",
            "title": "Analysis",
            "description": "Analysis of strongest/weakest positions"
          }
        },
        "type": "object",
        "required": [
          "success",
          "dignities",
          "overall_elemental_balance",
          "analysis"
        ],
        "title": "ElementalDignitiesResponse",
        "description": "Response for elemental dignities calculation"
      },
      "EnhancedAspect": {
        "properties": {
          "planet_a": {
            "type": "string",
            "title": "Planet A",
            "description": "First planet in aspect"
          },
          "planet_b": {
            "type": "string",
            "title": "Planet B",
            "description": "Second planet in aspect"
          },
          "aspect_type": {
            "type": "string",
            "title": "Aspect Type",
            "description": "Type of aspect"
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "Orb in degrees"
          },
          "applying": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Applying",
            "description": "Whether aspect is applying"
          },
          "reception_quality": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reception Quality",
            "description": "Reception analysis between planets"
          },
          "dignity_context": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dignity Context",
            "description": "Dignity status of both planets"
          },
          "aspect_strength": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aspect Strength",
            "description": "Calculated aspect strength (0-1)"
          }
        },
        "type": "object",
        "required": [
          "planet_a",
          "planet_b",
          "aspect_type",
          "orb"
        ],
        "title": "EnhancedAspect",
        "description": "Enhanced aspect with traditional analysis"
      },
      "EnhancedPlanetaryPosition": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Name of the celestial point"
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign (3-letter abbreviation)"
          },
          "degree": {
            "type": "number",
            "title": "Degree",
            "description": "Degree within sign (0-29.99)"
          },
          "absolute_longitude": {
            "type": "number",
            "title": "Absolute Longitude",
            "description": "Absolute longitude (0-360)"
          },
          "house": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "House",
            "description": "House number (1-12), only for personal mode"
          },
          "is_retrograde": {
            "type": "boolean",
            "title": "Is Retrograde",
            "description": "Retrograde motion indicator"
          },
          "speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed",
            "description": "Speed in degrees/day"
          },
          "dignities": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dignities",
            "description": "Essential dignities (domicile, exaltation, triplicity, term, decan)"
          },
          "debilities": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Debilities",
            "description": "Essential debilities (exile, fall)"
          },
          "sect": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sect",
            "description": "Planetary sect (day/night)"
          },
          "conditions": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Conditions",
            "description": "Special conditions (combust, cazimi, under_beams)"
          },
          "jubilation": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jubilation",
            "description": "In house of joy"
          },
          "dispositor_chain": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dispositor Chain",
            "description": "Full dispositor chain"
          },
          "mutual_reception": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mutual Reception",
            "description": "Planet in mutual reception"
          },
          "about_to_change_sign": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "About To Change Sign",
            "description": "Sign change information"
          }
        },
        "type": "object",
        "required": [
          "name",
          "sign",
          "degree",
          "absolute_longitude",
          "is_retrograde"
        ],
        "title": "EnhancedPlanetaryPosition",
        "description": "Enhanced planetary position with traditional astrology data"
      },
      "FixedStarConjunction": {
        "properties": {
          "star": {
            "type": "string",
            "title": "Star",
            "description": "Name of the fixed star"
          },
          "planet": {
            "type": "string",
            "title": "Planet",
            "description": "Planet conjunct the star"
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "Orb of conjunction in degrees"
          },
          "star_longitude": {
            "type": "number",
            "title": "Star Longitude",
            "description": "Star's current longitude"
          },
          "traditional_meaning": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Traditional Meaning",
            "description": "Traditional interpretation"
          }
        },
        "type": "object",
        "required": [
          "star",
          "planet",
          "orb",
          "star_longitude"
        ],
        "title": "FixedStarConjunction",
        "description": "Fixed star conjunction data"
      },
      "FixedStarsConfig": {
        "properties": {
          "presets": {
            "items": {
              "type": "string",
              "enum": [
                "essential",
                "traditional",
                "behenian",
                "extended"
              ]
            },
            "type": "array",
            "title": "Presets",
            "description": "Fixed star presets to include. Can combine multiple presets. Empty list = no fixed stars.",
            "default": [],
            "examples": [
              [
                "essential"
              ],
              [
                "essential",
                "traditional"
              ],
              [
                "behenian"
              ],
              [
                "essential",
                "traditional",
                "extended"
              ]
            ]
          },
          "custom_orbs": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "number"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Custom Orbs",
            "description": "Custom orb values for aspects (in degrees). Overrides preset defaults.",
            "examples": [
              {
                "conjunction": 2,
                "opposition": 1
              },
              {
                "conjunction": 1.5,
                "opposition": 1,
                "parallel": 1
              }
            ]
          },
          "include_parans": {
            "type": "boolean",
            "title": "Include Parans",
            "description": "Include parans (stars co-rising, co-culminating, co-setting). Adds ~20-30ms.",
            "default": false,
            "examples": [
              false,
              true
            ]
          },
          "include_heliacal": {
            "type": "boolean",
            "title": "Include Heliacal",
            "description": "Include heliacal rising/setting phenomena. Adds ~30-40ms.",
            "default": false,
            "examples": [
              false,
              true
            ]
          },
          "include_interpretations": {
            "type": "boolean",
            "title": "Include Interpretations",
            "description": "Include textual interpretations for fixed star aspects.",
            "default": true,
            "examples": [
              true,
              false
            ]
          }
        },
        "type": "object",
        "title": "FixedStarsConfig",
        "description": "Configuration for fixed stars calculations across all API endpoints.\nSupports multiple preset combinations for flexible star selection."
      },
      "FixedStarsConjunctionsRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Subject information with birth data"
          },
          "fixed_stars": {
            "$ref": "#/components/schemas/FixedStarsConfig",
            "description": "Fixed stars configuration",
            "default": {
              "presets": [
                "essential"
              ],
              "include_parans": false,
              "include_heliacal": false,
              "include_interpretations": true
            }
          },
          "include_oppositions": {
            "type": "boolean",
            "title": "Include Oppositions",
            "description": "Include opposition aspects",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "FixedStarsConjunctionsRequest",
        "description": "Request for fixed star conjunctions"
      },
      "FixedStarsPositionsRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Subject information with birth data"
          },
          "fixed_stars": {
            "$ref": "#/components/schemas/FixedStarsConfig",
            "description": "Fixed stars configuration with presets",
            "default": {
              "presets": [],
              "include_parans": false,
              "include_heliacal": false,
              "include_interpretations": true
            }
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "FixedStarsPositionsRequest",
        "description": "Request for fixed star positions"
      },
      "FixedStarsReportRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Subject information with birth data"
          },
          "fixed_stars": {
            "$ref": "#/components/schemas/FixedStarsConfig",
            "description": "Fixed stars configuration",
            "default": {
              "presets": [
                "essential",
                "traditional"
              ],
              "include_parans": false,
              "include_heliacal": false,
              "include_interpretations": true
            }
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "FixedStarsReportRequest",
        "description": "Request for comprehensive fixed stars report"
      },
      "GlobalAnalysisRequest": {
        "properties": {
          "calculation_time": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date and time for planetary positions calculation (defaults to current UTC time)"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Calculation options for global analysis"
          },
          "orbs": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Orbs",
            "description": "Orb settings for aspects",
            "examples": [
              {
                "major_aspects_deg": 2
              },
              {
                "major_aspects_deg": 1.5
              },
              {
                "major_aspects_deg": 3
              }
            ]
          }
        },
        "type": "object",
        "title": "GlobalAnalysisRequest",
        "description": "Request for global traditional analysis of current planetary conditions"
      },
      "GlobalAnalysisResponse": {
        "properties": {
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Response metadata"
          },
          "planets": {
            "items": {
              "$ref": "#/components/schemas/EnhancedPlanetaryPosition"
            },
            "type": "array",
            "title": "Planets",
            "description": "Enhanced planetary positions"
          },
          "aspects": {
            "items": {
              "$ref": "#/components/schemas/EnhancedAspect"
            },
            "type": "array",
            "title": "Aspects",
            "description": "Current planetary aspects"
          },
          "fixed_stars": {
            "items": {
              "$ref": "#/components/schemas/FixedStarConjunction"
            },
            "type": "array",
            "title": "Fixed Stars",
            "description": "Fixed star conjunctions"
          },
          "lunar_phase": {
            "$ref": "#/components/schemas/LunarPhaseData",
            "description": "Current lunar phase information"
          },
          "rarity": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rarity",
            "description": "Rare cycle identifier"
          },
          "priority_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Priority Score",
            "description": "Relative strength marker"
          },
          "life_areas": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Life Areas",
            "description": "Universal thematic tags"
          },
          "start_utc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Utc",
            "description": "Analysis period start time"
          },
          "end_utc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Utc",
            "description": "Analysis period end time"
          },
          "daypart_hint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Daypart Hint",
            "description": "Time of day context"
          }
        },
        "type": "object",
        "required": [
          "metadata",
          "planets",
          "aspects",
          "fixed_stars",
          "lunar_phase"
        ],
        "title": "GlobalAnalysisResponse",
        "description": "Response for global traditional analysis"
      },
      "GlobalDataRequest": {
        "properties": {
          "year": {
            "type": "integer",
            "maximum": 2100,
            "minimum": 1900,
            "title": "Year",
            "description": "Year for calculation"
          },
          "month": {
            "type": "integer",
            "maximum": 12,
            "minimum": 1,
            "title": "Month",
            "description": "Month for calculation (1-12)"
          },
          "day": {
            "type": "integer",
            "maximum": 31,
            "minimum": 1,
            "title": "Day",
            "description": "Day for calculation (1-31)"
          },
          "hour": {
            "type": "integer",
            "maximum": 23,
            "minimum": 0,
            "title": "Hour",
            "description": "Hour in UTC (0-23)",
            "default": 12
          },
          "minute": {
            "type": "integer",
            "maximum": 59,
            "minimum": 0,
            "title": "Minute",
            "description": "Minute (0-59)",
            "default": 0
          },
          "second": {
            "type": "integer",
            "maximum": 59,
            "minimum": 0,
            "title": "Second",
            "description": "Second (0-59)",
            "default": 0
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DataOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Global calculation options"
          }
        },
        "type": "object",
        "required": [
          "year",
          "month",
          "day"
        ],
        "title": "GlobalDataRequest",
        "description": "Request model for global planetary positions that don't require location data.\nUsed for ephemeris calculations at universal coordinates (0°N, 0°W).",
        "example": {
          "day": 15,
          "hour": 12,
          "minute": 0,
          "month": 3,
          "options": {
            "active_points": [
              "Sun",
              "Moon",
              "Mercury",
              "Venus",
              "Mars",
              "Jupiter",
              "Saturn"
            ],
            "precision": 2,
            "zodiac_type": "Tropic"
          },
          "second": 0,
          "year": 2024
        }
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HouseCusp": {
        "properties": {
          "house": {
            "type": "integer",
            "title": "House",
            "description": "House number (1-12).",
            "examples": [
              1,
              7,
              10,
              12
            ]
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign on the cusp (the beginning) of the house.",
            "examples": [
              "Ari",
              "Lib",
              "Cap",
              "Pis"
            ]
          },
          "degree": {
            "type": "number",
            "title": "Degree",
            "description": "The degree of the zodiac sign where the house cusp begins.",
            "examples": [
              15.23,
              0.45,
              28.91,
              12.67
            ]
          },
          "absolute_longitude": {
            "type": "number",
            "title": "Absolute Longitude",
            "description": "Absolute longitude of the house cusp (0-360 degrees)",
            "examples": [
              210,
              15.23,
              270.45,
              348.91
            ]
          },
          "retrograde": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retrograde",
            "description": "Always null for house cusps as they don't have retrograde motion",
            "examples": [
              null
            ]
          }
        },
        "type": "object",
        "required": [
          "house",
          "sign",
          "degree",
          "absolute_longitude"
        ],
        "title": "HouseCusp"
      },
      "HousePosition": {
        "properties": {
          "house_number": {
            "type": "integer",
            "title": "House Number",
            "description": "House number (1-12)"
          },
          "house_themes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "House Themes",
            "description": "House themes and meanings"
          },
          "card": {
            "$ref": "#/components/schemas/TarotCard",
            "description": "Card representing this house"
          },
          "orientation": {
            "type": "string",
            "enum": [
              "upright",
              "reversed"
            ],
            "title": "Orientation",
            "description": "Card orientation"
          },
          "interpretation": {
            "type": "string",
            "title": "Interpretation",
            "description": "House-specific interpretation"
          },
          "natal_planets": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Natal Planets",
            "description": "Planets in this house"
          },
          "transiting_planets": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transiting Planets",
            "description": "Current transiting planets"
          },
          "timing_prediction": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timing Prediction",
            "description": "Timing for this house"
          }
        },
        "type": "object",
        "required": [
          "house_number",
          "house_themes",
          "card",
          "orientation",
          "interpretation"
        ],
        "title": "HousePosition",
        "description": "House position in natal report"
      },
      "HouseSystem": {
        "type": "string",
        "enum": [
          "P",
          "W",
          "K",
          "A",
          "R",
          "C",
          "O",
          "M"
        ],
        "title": "HouseSystem",
        "description": "Supported house systems"
      },
      "HouseTypeData": {
        "properties": {
          "power": {
            "type": "number",
            "title": "Power",
            "description": "Total power"
          },
          "percentage": {
            "type": "number",
            "title": "Percentage",
            "description": "Percentage of total"
          }
        },
        "type": "object",
        "required": [
          "power",
          "percentage"
        ],
        "title": "HouseTypeData",
        "description": "Astrodyne data for house type (angular/succedent/cadent)"
      },
      "ImpactfulEclipse": {
        "properties": {
          "eclipse_id": {
            "type": "string",
            "title": "Eclipse Id",
            "description": "NASA format eclipse ID"
          },
          "date": {
            "type": "string",
            "title": "Date",
            "description": "Eclipse date"
          },
          "type": {
            "type": "string",
            "enum": [
              "solar_total",
              "solar_annular",
              "solar_partial",
              "solar_hybrid",
              "lunar_total",
              "lunar_partial",
              "lunar_penumbral"
            ],
            "title": "Type",
            "description": "Eclipse type"
          },
          "saros_series": {
            "type": "integer",
            "title": "Saros Series",
            "description": "Saros series number"
          },
          "impact_score": {
            "type": "number",
            "title": "Impact Score",
            "description": "Personal impact score (0-10)"
          },
          "activations": {
            "items": {
              "$ref": "#/components/schemas/NatalActivation"
            },
            "type": "array",
            "title": "Activations",
            "description": "List of natal activations"
          },
          "saros_history": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SarosHistory"
              },
              {
                "type": "null"
              }
            ],
            "description": "Historical context"
          }
        },
        "type": "object",
        "required": [
          "eclipse_id",
          "date",
          "type",
          "saros_series",
          "impact_score",
          "activations"
        ],
        "title": "ImpactfulEclipse",
        "description": "Eclipse with significant natal impact"
      },
      "Interpretation": {
        "properties": {
          "title": {
            "type": "string",
            "title": "Title",
            "description": "The title of the interpretation (e.g., 'Sun in Aries')."
          },
          "text": {
            "type": "string",
            "title": "Text",
            "description": "The interpretation text."
          },
          "components": {
            "anyOf": [
              {
                "additionalProperties": {
                  "$ref": "#/components/schemas/InterpretationComponent"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Components",
            "description": "Primary and secondary components involved (e.g., {'primary': Sun component, 'secondary': Aries component})."
          },
          "astrological_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AstrologicalData"
              },
              {
                "type": "null"
              }
            ],
            "description": "Additional astrological data for this interpretation."
          }
        },
        "type": "object",
        "required": [
          "title",
          "text"
        ],
        "title": "Interpretation",
        "description": "An single astrological interpretation with enhanced metadata."
      },
      "InterpretationComponent": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Standard identifier (e.g., 'Sun', 'Ari', 'House_5')."
          },
          "type": {
            "type": "string",
            "title": "Type",
            "description": "Component type: 'planet', 'sign', 'house', 'aspect', 'angle'."
          },
          "translated_name": {
            "type": "string",
            "title": "Translated Name",
            "description": "Localized name in the requested language."
          },
          "symbol": {
            "type": "string",
            "title": "Symbol",
            "description": "Unicode astrological symbol (e.g., '☉', '♈', '⚹')."
          }
        },
        "type": "object",
        "required": [
          "id",
          "type",
          "translated_name",
          "symbol"
        ],
        "title": "InterpretationComponent",
        "description": "A component of an astrological interpretation (planet, sign, house, etc.)."
      },
      "InterpretedTransitEvent": {
        "properties": {
          "date": {
            "type": "string",
            "title": "Date",
            "description": "The date (UTC) when the transit is active or becomes exact."
          },
          "exact_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exact Time",
            "description": "The exact time (ISO format) when the aspect becomes perfect (0° orb). Only provided when precision timing is calculated."
          },
          "transiting_planet": {
            "type": "string",
            "title": "Transiting Planet",
            "description": "The planet that is moving (in transit)."
          },
          "aspect_type": {
            "type": "string",
            "title": "Aspect Type",
            "description": "The type of aspect (e.g., 'conjunction', 'trine')."
          },
          "stationed_planet": {
            "type": "string",
            "title": "Stationed Planet",
            "description": "The planet in the natal or solar return chart being aspected."
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "The orb of the aspect in degrees."
          },
          "aspect_direction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aspect Direction",
            "description": "Whether the aspect is 'applying' (forming), 'separating' (dissolving), or 'exact'."
          },
          "transiting_speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transiting Speed",
            "description": "Speed of the transiting planet in degrees/day. Negative values indicate retrograde motion."
          },
          "transiting_house": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transiting House",
            "description": "The house number (1-12) that the transiting planet is currently in."
          },
          "natal_house": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Natal House",
            "description": "The natal house number (1-12) of the stationed planet."
          },
          "interpretation": {
            "type": "string",
            "title": "Interpretation",
            "description": "The textual interpretation of the transit event."
          }
        },
        "type": "object",
        "required": [
          "date",
          "transiting_planet",
          "aspect_type",
          "stationed_planet",
          "orb",
          "interpretation"
        ],
        "title": "InterpretedTransitEvent"
      },
      "Language": {
        "type": "string",
        "enum": [
          "en",
          "es",
          "fr",
          "de",
          "it",
          "pt",
          "ru",
          "zh",
          "ja",
          "hi",
          "tr",
          "uk",
          "en-US",
          "en-GB",
          "en-ARCHAIC",
          "pt-BR",
          "pt-PT",
          "es-MX",
          "es-ES",
          "fr-FR",
          "fr-CA",
          "zh-CN",
          "zh-TW"
        ],
        "title": "Language",
        "description": "Supported languages with regional variants"
      },
      "LifeAreaCompatibility": {
        "properties": {
          "area": {
            "type": "string",
            "title": "Area",
            "description": "Life area name (e.g., 'Communication', 'Love & Romance', 'Career')."
          },
          "compatibility_score": {
            "type": "number",
            "maximum": 1,
            "minimum": 0,
            "title": "Compatibility Score",
            "description": "Compatibility score from 0.0 to 1.0."
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Detailed description of compatibility in this area."
          },
          "key_factors": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Key Factors",
            "description": "Key astrological factors influencing this area."
          }
        },
        "type": "object",
        "required": [
          "area",
          "compatibility_score",
          "description",
          "key_factors"
        ],
        "title": "LifeAreaCompatibility"
      },
      "LineMeaningsResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "line_meanings": {
            "additionalProperties": {
              "additionalProperties": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "object"
            },
            "type": "object",
            "title": "Line Meanings",
            "description": "Complete line meanings by planet and line type"
          },
          "line_types": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Line Types",
            "description": "Line type descriptions"
          },
          "interpretation_guide": {
            "additionalProperties": true,
            "type": "object",
            "title": "Interpretation Guide",
            "description": "Interpretation guidelines"
          }
        },
        "type": "object",
        "required": [
          "line_meanings",
          "line_types",
          "interpretation_guide"
        ],
        "title": "LineMeaningsResponse",
        "description": "Response for line meanings reference"
      },
      "LocationAnalysisRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for analysis"
          },
          "location": {
            "$ref": "#/components/schemas/LocationInput",
            "description": "Location to analyze"
          },
          "analysis_options": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Analysis Options",
            "description": "Analysis configuration options"
          }
        },
        "type": "object",
        "required": [
          "subject",
          "location"
        ],
        "title": "LocationAnalysisRequest",
        "description": "Request for analyzing specific location"
      },
      "LocationAnalysisResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "location_info": {
            "additionalProperties": true,
            "type": "object",
            "title": "Location Info",
            "description": "Location details"
          },
          "nearby_lines": {
            "items": {
              "$ref": "#/components/schemas/NearbyLine"
            },
            "type": "array",
            "title": "Nearby Lines",
            "description": "Nearby planetary lines"
          },
          "relocated_chart": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relocated Chart",
            "description": "Relocated chart data"
          },
          "life_area_ratings": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "title": "Life Area Ratings",
            "description": "Ratings by life area"
          },
          "overall_score": {
            "type": "number",
            "maximum": 10,
            "minimum": 0,
            "title": "Overall Score",
            "description": "Overall location score"
          },
          "summary": {
            "type": "string",
            "title": "Summary",
            "description": "Analysis summary"
          },
          "detailed_analysis": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detailed Analysis",
            "description": "Detailed breakdown"
          }
        },
        "type": "object",
        "required": [
          "location_info",
          "nearby_lines",
          "life_area_ratings",
          "overall_score",
          "summary"
        ],
        "title": "LocationAnalysisResponse",
        "description": "Response for location analysis"
      },
      "LocationAstrodynesSummary": {
        "properties": {
          "location": {
            "additionalProperties": true,
            "type": "object",
            "title": "Location",
            "description": "Location details"
          },
          "total_power": {
            "type": "number",
            "title": "Total Power",
            "description": "Total chart power"
          },
          "total_harmony": {
            "type": "number",
            "title": "Total Harmony",
            "description": "Total chart harmony"
          },
          "strongest_planet": {
            "additionalProperties": true,
            "type": "object",
            "title": "Strongest Planet",
            "description": "Highest power planet"
          },
          "most_harmonious": {
            "additionalProperties": true,
            "type": "object",
            "title": "Most Harmonious",
            "description": "Most positive harmony planet"
          },
          "most_discordant": {
            "additionalProperties": true,
            "type": "object",
            "title": "Most Discordant",
            "description": "Most negative harmony planet"
          },
          "dominant_element": {
            "type": "string",
            "title": "Dominant Element",
            "description": "Element with highest power"
          },
          "dominant_trinity": {
            "type": "string",
            "title": "Dominant Trinity",
            "description": "Trinity with highest power"
          }
        },
        "type": "object",
        "required": [
          "location",
          "total_power",
          "total_harmony",
          "strongest_planet",
          "most_harmonious",
          "most_discordant",
          "dominant_element",
          "dominant_trinity"
        ],
        "title": "LocationAstrodynesSummary",
        "description": "Summary astrodynes for a single location"
      },
      "LocationFilters": {
        "properties": {
          "countries": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Countries",
            "description": "ISO country codes to include",
            "examples": [
              [
                "US",
                "CA",
                "GB"
              ],
              [
                "FR",
                "DE",
                "IT"
              ]
            ]
          },
          "continents": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Continents",
            "description": "Continents to include",
            "examples": [
              [
                "North America",
                "Europe"
              ],
              [
                "Asia",
                "Oceania"
              ]
            ]
          },
          "min_population": {
            "type": "integer",
            "minimum": 50000,
            "title": "Min Population",
            "description": "Minimum city population",
            "default": 750000
          },
          "max_population": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 100000
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Population",
            "description": "Maximum city population"
          },
          "climate_zones": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Climate Zones",
            "description": "Climate zones to include",
            "examples": [
              [
                "temperate",
                "subtropical"
              ],
              [
                "tropical",
                "arid"
              ]
            ]
          },
          "languages": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Languages",
            "description": "Primary languages",
            "examples": [
              [
                "en",
                "fr",
                "es"
              ],
              [
                "de",
                "it",
                "pt"
              ]
            ]
          },
          "exclude_cities": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exclude Cities",
            "description": "Cities to exclude from results",
            "examples": [
              [
                "Moscow",
                "St Petersburg"
              ],
              [
                "Beijing",
                "Shanghai"
              ]
            ]
          }
        },
        "type": "object",
        "title": "LocationFilters",
        "description": "Filters for location search"
      },
      "LocationInput": {
        "properties": {
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City",
            "description": "City name"
          },
          "country_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Code",
            "description": "ISO country code"
          },
          "latitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 90,
                "minimum": -90
              },
              {
                "type": "null"
              }
            ],
            "title": "Latitude",
            "description": "Latitude"
          },
          "longitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 180,
                "minimum": -180
              },
              {
                "type": "null"
              }
            ],
            "title": "Longitude",
            "description": "Longitude"
          }
        },
        "type": "object",
        "title": "LocationInput",
        "description": "Flexible location input - city name or coordinates"
      },
      "LocationSearchResult": {
        "properties": {
          "rank": {
            "type": "integer",
            "title": "Rank",
            "description": "Result ranking"
          },
          "city": {
            "type": "string",
            "title": "City",
            "description": "City name"
          },
          "country": {
            "type": "string",
            "title": "Country",
            "description": "Country name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code",
            "description": "ISO country code"
          },
          "coordinates": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "title": "Coordinates",
            "description": "City coordinates"
          },
          "population": {
            "type": "integer",
            "title": "Population",
            "description": "City population"
          },
          "overall_score": {
            "type": "number",
            "maximum": 10,
            "minimum": 0,
            "title": "Overall Score",
            "description": "Overall astrological score"
          },
          "life_area_scores": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "title": "Life Area Scores",
            "description": "Scores by life area"
          },
          "primary_influences": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Primary Influences",
            "description": "Main astrological influences"
          },
          "relocated_highlights": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Relocated Highlights",
            "description": "Key relocation benefits"
          },
          "summary": {
            "type": "string",
            "title": "Summary",
            "description": "Summary description"
          }
        },
        "type": "object",
        "required": [
          "rank",
          "city",
          "country",
          "country_code",
          "coordinates",
          "population",
          "overall_score",
          "life_area_scores",
          "primary_influences",
          "relocated_highlights",
          "summary"
        ],
        "title": "LocationSearchResult",
        "description": "Single location search result"
      },
      "LuckPillarsRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/ChineseSubject",
            "description": "Person for luck pillar analysis"
          },
          "include_annual_pillars": {
            "type": "boolean",
            "title": "Include Annual Pillars",
            "description": "Include annual pillars within periods",
            "default": true
          },
          "years_ahead": {
            "type": "integer",
            "maximum": 50,
            "minimum": 1,
            "title": "Years Ahead",
            "description": "Number of years to analyze ahead",
            "default": 10
          },
          "current_year": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 2100,
                "minimum": 1900
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Year",
            "description": "Reference year"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Response language",
            "default": "en"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "LuckPillarsRequest",
        "description": "Request for luck pillars calculation"
      },
      "LunarAnalysisRequest": {
        "properties": {
          "datetime_location": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "The date, time, and location for the analysis."
          },
          "tradition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tradition",
            "description": "⚠️ LEGACY: The astrological tradition to use for the report. Use report_options instead."
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language",
            "description": "⚠️ LEGACY: The language for the report interpretations. Use report_options instead."
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Report generation options including tradition and language (recommended)."
          }
        },
        "type": "object",
        "required": [
          "datetime_location"
        ],
        "title": "LunarAnalysisRequest"
      },
      "LunarAnalysisResponse": {
        "properties": {
          "lunar_metrics": {
            "$ref": "#/components/schemas/LunarMetricsResponse",
            "description": "The calculated lunar metrics."
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/Interpretation"
            },
            "type": "array",
            "title": "Interpretations",
            "description": "A list of interpretations for the lunar data."
          }
        },
        "type": "object",
        "required": [
          "lunar_metrics",
          "interpretations"
        ],
        "title": "LunarAnalysisResponse",
        "description": "The response for a lunar metrics analysis."
      },
      "LunarEventsRequest": {
        "properties": {
          "datetime_location": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "Date, time, and location for calculation"
          },
          "days_ahead": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 365,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Days Ahead",
            "description": "Number of days to search for special events",
            "default": 90
          }
        },
        "type": "object",
        "required": [
          "datetime_location"
        ],
        "title": "LunarEventsRequest",
        "description": "Request for special lunar events"
      },
      "LunarMansionsRequest": {
        "properties": {
          "datetime_location": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "Date, time, and location for calculation"
          },
          "system": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System",
            "description": "Mansion system: 'arabian_tropical', 'vedic_sidereal', 'chinese_sidereal'",
            "default": "arabian_tropical"
          },
          "days_ahead": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 90,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Days Ahead",
            "description": "Number of days to calculate mansion changes",
            "default": 30
          }
        },
        "type": "object",
        "required": [
          "datetime_location"
        ],
        "title": "LunarMansionsRequest",
        "description": "Request for lunar mansions calculation"
      },
      "LunarMetricsResponse": {
        "properties": {
          "date": {
            "type": "string",
            "title": "Date",
            "description": "Date of the measurement in 'YYYY-MM-DD' format."
          },
          "within_perigee_range": {
            "type": "boolean",
            "title": "Within Perigee Range",
            "description": "Whether the Moon is within its perigee range."
          },
          "distance": {
            "type": "number",
            "title": "Distance",
            "description": "Distance between the Moon and Earth in kilometers."
          },
          "within_apogee_range": {
            "type": "boolean",
            "title": "Within Apogee Range",
            "description": "Whether the Moon is within its apogee range."
          },
          "apogee_distance": {
            "type": "number",
            "title": "Apogee Distance",
            "description": "Apogee distance between the Moon and Earth in kilometers."
          },
          "moon_sign": {
            "type": "string",
            "title": "Moon Sign",
            "description": "Zodiac sign of the Moon."
          },
          "moon_phase": {
            "type": "string",
            "title": "Moon Phase",
            "description": "Current phase of the Moon."
          },
          "moon_age_in_days": {
            "type": "number",
            "title": "Moon Age In Days",
            "description": "Age of the Moon in days."
          },
          "moon_day": {
            "type": "integer",
            "title": "Moon Day",
            "description": "Day of the lunar month."
          },
          "moon_illumination": {
            "type": "number",
            "title": "Moon Illumination",
            "description": "Percentage of the Moon that is illuminated."
          }
        },
        "type": "object",
        "required": [
          "date",
          "within_perigee_range",
          "distance",
          "within_apogee_range",
          "apogee_distance",
          "moon_sign",
          "moon_phase",
          "moon_age_in_days",
          "moon_day",
          "moon_illumination"
        ],
        "title": "LunarMetricsResponse",
        "description": "Response schema for lunar metrics."
      },
      "LunarPhaseData": {
        "properties": {
          "phase_name": {
            "type": "string",
            "title": "Phase Name",
            "description": "Phase name (New, Crescent, First Quarter, etc.)"
          },
          "elongation_deg": {
            "type": "number",
            "title": "Elongation Deg",
            "description": "Angular distance from Sun in degrees"
          },
          "illumination_percent": {
            "type": "number",
            "title": "Illumination Percent",
            "description": "Percentage illuminated"
          },
          "moon_age_days": {
            "type": "number",
            "title": "Moon Age Days",
            "description": "Days since last New Moon"
          }
        },
        "type": "object",
        "required": [
          "phase_name",
          "elongation_deg",
          "illumination_percent",
          "moon_age_days"
        ],
        "title": "LunarPhaseData",
        "description": "Enhanced lunar phase information"
      },
      "LunarPhasesRequest": {
        "properties": {
          "datetime_location": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "Date, time, and location for calculation"
          },
          "days_ahead": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 365,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Days Ahead",
            "description": "Number of days to calculate phases ahead",
            "default": 30
          }
        },
        "type": "object",
        "required": [
          "datetime_location"
        ],
        "title": "LunarPhasesRequest",
        "description": "Request for precise lunar phases calculation"
      },
      "LunarReturnChartResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data"
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData"
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "chart_data"
        ],
        "title": "LunarReturnChartResponse"
      },
      "LunarReturnReportRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "return_date": {
            "type": "string",
            "format": "date",
            "title": "Return Date",
            "description": "Approximate date for the lunar return calculation.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ],
            "example": "2024-03-15"
          },
          "return_location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location at the moment of the lunar return. If not provided, birth location is used."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "return_date"
        ],
        "title": "LunarReturnReportRequest"
      },
      "LunarReturnReportResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data",
            "description": "Data of the lunar return chart subject."
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data for the lunar return."
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/Interpretation"
            },
            "type": "array",
            "title": "Interpretations",
            "description": "A list of interpretations for the lunar return chart."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "chart_data",
          "interpretations"
        ],
        "title": "LunarReturnReportResponse",
        "description": "The response for a lunar return analysis."
      },
      "LunarReturnRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "return_date": {
            "type": "string",
            "format": "date",
            "title": "Return Date",
            "description": "Approximate date for the lunar return calculation.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ],
            "example": "2024-03-15"
          },
          "return_location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location at the moment of the lunar return. If not provided, birth location is used."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "return_date"
        ],
        "title": "LunarReturnRequest"
      },
      "LunarReturnTransitChartResponse": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/TransitEvent"
            },
            "type": "array",
            "title": "Events",
            "description": "A list of exact transit events within the requested date range."
          }
        },
        "type": "object",
        "required": [
          "events"
        ],
        "title": "LunarReturnTransitChartResponse",
        "description": "The response for a lunar return transit calculation."
      },
      "LunarReturnTransitReportResponse": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/InterpretedTransitEvent"
            },
            "type": "array",
            "title": "Events",
            "description": "A list of exact transit events with their interpretations."
          }
        },
        "type": "object",
        "required": [
          "events"
        ],
        "title": "LunarReturnTransitReportResponse",
        "description": "The response for a lunar return transit report."
      },
      "LunarReturnTransitRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "return_date": {
            "type": "string",
            "format": "date",
            "title": "Return Date",
            "description": "Approximate date for the lunar return calculation.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ],
            "example": "2024-03-15"
          },
          "return_location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location at the moment of the lunar return. If not provided, birth location is used."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "date_range": {
            "$ref": "#/components/schemas/DateRange",
            "description": "The date range to search for transits."
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "The maximum orb (in degrees) to consider an aspect exact. Defaults to 1.0.",
            "default": 1,
            "examples": [
              1,
              2,
              0.5,
              3
            ]
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "return_date",
          "date_range"
        ],
        "title": "LunarReturnTransitRequest"
      },
      "MapRegion": {
        "properties": {
          "latitude_range": {
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "type": "array",
            "maxItems": 2,
            "minItems": 2,
            "title": "Latitude Range",
            "description": "Latitude range to display on map",
            "default": [
              -60,
              80
            ],
            "examples": [
              [
                -60,
                80
              ],
              [
                25,
                50
              ],
              [
                -90,
                90
              ]
            ],
            "items": {
              "type": "number"
            }
          },
          "longitude_range": {
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "type": "array",
            "maxItems": 2,
            "minItems": 2,
            "title": "Longitude Range",
            "description": "Longitude range to display on map",
            "default": [
              -180,
              180
            ],
            "examples": [
              [
                -180,
                180
              ],
              [
                -125,
                -65
              ],
              [
                0,
                50
              ]
            ],
            "items": {
              "type": "number"
            }
          }
        },
        "type": "object",
        "title": "MapRegion",
        "description": "Geographic region for map display"
      },
      "MarketTimingRequest": {
        "properties": {
          "start_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "markets": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Markets",
            "default": [
              "stocks",
              "crypto"
            ]
          },
          "language": {
            "type": "string",
            "title": "Language",
            "default": "en"
          }
        },
        "type": "object",
        "title": "MarketTimingRequest",
        "description": "Request for market timing analysis"
      },
      "MultiPetDynamicsResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status",
            "default": true
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "Response data"
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "Success message"
          }
        },
        "type": "object",
        "required": [
          "data",
          "message"
        ],
        "title": "MultiPetDynamicsResponse",
        "description": "Response model for multi-pet household dynamics",
        "example": {
          "data": {
            "compatibility": 78,
            "dynamics": [
              {
                "pet1": "Max",
                "pet2": "Luna",
                "relationship": "Playful companions"
              }
            ],
            "harmony_score": 78,
            "interactions": {
              "individual_pairs": [
                {
                  "compatibility": 82,
                  "pets": [
                    "Max",
                    "Luna"
                  ]
                }
              ],
              "overall_harmony": 78
            },
            "pack_overview": "Multi-pet household analysis",
            "pair_compatibilities": [
              {
                "notes": [
                  "Complementary energy levels",
                  "Good play compatibility"
                ],
                "pet1": "Max",
                "pet2": "Luna",
                "score": 82
              }
            ],
            "recommendations": [
              "Provide separate feeding areas",
              "Ensure each pet has their own space",
              "Supervise initial interactions",
              "Maintain consistent routines"
            ]
          },
          "message": "Multi-pet dynamics analyzed for 2 pets",
          "success": true
        }
      },
      "MultipleSubjectsRequest": {
        "properties": {
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject"
            },
            "type": "array",
            "maxItems": 10,
            "minItems": 2,
            "title": "Subjects",
            "description": "Subjects for calculation (defaults to 2 test subjects if not provided)"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StandardOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Request options"
          }
        },
        "type": "object",
        "title": "MultipleSubjectsRequest",
        "description": "Base request model for endpoints requiring multiple subjects",
        "example": {
          "options": {
            "language": "en"
          },
          "subjects": [
            {
              "birth_data": {
                "city": "London",
                "country_code": "GB",
                "day": 11,
                "hour": 18,
                "minute": 15,
                "month": 5,
                "year": 1985
              },
              "name": "Person 1"
            },
            {
              "birth_data": {
                "city": "Paris",
                "country_code": "FR",
                "day": 15,
                "hour": 14,
                "minute": 30,
                "month": 3,
                "year": 1990
              },
              "name": "Person 2"
            }
          ]
        }
      },
      "NatalActivation": {
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "conjunction",
              "house_activation"
            ],
            "title": "Type",
            "description": "Type of activation"
          },
          "natal_point": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Natal Point",
            "description": "Activated natal point (if conjunction)"
          },
          "natal_degree": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Natal Degree",
            "description": "Degree of natal point"
          },
          "eclipse_degree": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eclipse Degree",
            "description": "Degree of eclipse"
          },
          "orb": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Orb",
            "description": "Orb in degrees"
          },
          "house": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "House",
            "description": "Activated house number (1-12)"
          },
          "life_area": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Life Area",
            "description": "Life area associated with activation"
          },
          "interpretation": {
            "type": "string",
            "title": "Interpretation",
            "description": "Astrological interpretation of the activation"
          }
        },
        "type": "object",
        "required": [
          "type",
          "interpretation"
        ],
        "title": "NatalActivation",
        "description": "Eclipse activation of natal chart point"
      },
      "NatalChartRenderRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "render_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RenderOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "NatalChartRenderRequest",
        "description": "Request for rendering natal chart in multiple formats (SVG, PNG, JPG, WebP, PDF)"
      },
      "NatalChartRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "NatalChartRequest"
      },
      "NatalChartResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data",
            "description": "Detailed raw data object of the subject from the calculation library."
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData"
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "chart_data"
        ],
        "title": "NatalChartResponse"
      },
      "NatalChartSVGRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "svg_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SVGOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "NatalChartSVGRequest"
      },
      "NatalTransitChartResponse": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/TransitEvent"
            },
            "type": "array",
            "title": "Events",
            "description": "A list of exact transit events within the requested date range."
          }
        },
        "type": "object",
        "required": [
          "events"
        ],
        "title": "NatalTransitChartResponse",
        "description": "The response for a natal transit calculation."
      },
      "NatalTransitReportResponse": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/InterpretedTransitEvent"
            },
            "type": "array",
            "title": "Events",
            "description": "A list of exact transit events with their interpretations."
          }
        },
        "type": "object",
        "required": [
          "events"
        ],
        "title": "NatalTransitReportResponse",
        "description": "The response for a natal transit report."
      },
      "NatalTransitRequest": {
        "properties": {
          "subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "Birth data for natal chart calculation."
          },
          "transit_time": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransitTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "🆕 Transit time specification - use 'date_range' for transit event searches."
          },
          "natal_subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "⚠️ LEGACY: Use 'subject' instead. Birth data for natal chart calculation.",
            "deprecated": true
          },
          "date_range": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateRange"
              },
              {
                "type": "null"
              }
            ],
            "description": "⚠️ LEGACY: Use 'transit_time.date_range' instead. Date range for transit search.",
            "deprecated": true
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "The maximum orb (in degrees) to consider an aspect exact. Defaults to 1.0.",
            "default": 1,
            "examples": [
              1,
              2,
              0.5,
              3
            ]
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "NatalTransitRequest",
        "description": "🆕 Unified natal transit request with backward-compatible legacy field support.\n\n**New format (recommended):**\n- `subject` - Birth data for natal chart\n- `transit_time` - Use `date_range` for transit event searches\n\n**Legacy format (still supported):**\n- `natal_subject` - Alias for `subject`\n- `date_range` - Direct date range (maps to transit_time.date_range)"
      },
      "NearbyLine": {
        "properties": {
          "planet": {
            "type": "string",
            "title": "Planet",
            "description": "Planet name"
          },
          "line_type": {
            "type": "string",
            "title": "Line Type",
            "description": "Line type"
          },
          "distance_km": {
            "type": "number",
            "title": "Distance Km",
            "description": "Distance from location in km"
          },
          "orb_degrees": {
            "type": "number",
            "title": "Orb Degrees",
            "description": "Orb in degrees"
          },
          "strength": {
            "type": "string",
            "title": "Strength",
            "description": "Influence strength"
          },
          "meaning": {
            "type": "string",
            "title": "Meaning",
            "description": "Astrological meaning"
          }
        },
        "type": "object",
        "required": [
          "planet",
          "line_type",
          "distance_km",
          "orb_degrees",
          "strength",
          "meaning"
        ],
        "title": "NearbyLine",
        "description": "Planetary line near a location"
      },
      "OptimalTime": {
        "properties": {
          "datetime": {
            "type": "string",
            "title": "Datetime",
            "description": "Date and time"
          },
          "quality_score": {
            "type": "number",
            "title": "Quality Score",
            "description": "Quality score 0-100"
          },
          "factors": {
            "additionalProperties": true,
            "type": "object",
            "title": "Factors",
            "description": "Factors affecting quality"
          }
        },
        "type": "object",
        "required": [
          "datetime",
          "quality_score",
          "factors"
        ],
        "title": "OptimalTime",
        "description": "Single optimal time slot"
      },
      "OptimalTimesRequest": {
        "properties": {
          "birth_data": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "Birth data for calculations"
          },
          "question_type": {
            "type": "string",
            "title": "Question Type",
            "description": "Type of question"
          },
          "date_range": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Date Range",
            "description": "Start and end dates"
          }
        },
        "type": "object",
        "required": [
          "birth_data",
          "question_type",
          "date_range"
        ],
        "title": "OptimalTimesRequest",
        "description": "Request for optimal reading times"
      },
      "OptimalTimesResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "optimal_times": {
            "items": {
              "$ref": "#/components/schemas/OptimalTime"
            },
            "type": "array",
            "title": "Optimal Times",
            "description": "List of optimal time slots"
          },
          "factors_explanation": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Factors Explanation",
            "description": "Explanation of timing factors"
          }
        },
        "type": "object",
        "required": [
          "success",
          "optimal_times",
          "factors_explanation"
        ],
        "title": "OptimalTimesResponse",
        "description": "Response for optimal times"
      },
      "ParanMapRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for paran calculations"
          },
          "paran_options": {
            "additionalProperties": true,
            "type": "object",
            "title": "Paran Options",
            "description": "Paran calculation options"
          },
          "visual_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VisualOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Visual styling options"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "ParanMapRequest",
        "description": "Request for paran astrocartography map"
      },
      "ParanMapResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "svg_content": {
            "type": "string",
            "title": "Svg Content",
            "description": "Paran map SVG"
          },
          "paran_data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Paran Data",
            "description": "Paran calculation data"
          },
          "interpretation": {
            "type": "string",
            "title": "Interpretation",
            "description": "Paran interpretation"
          }
        },
        "type": "object",
        "required": [
          "svg_content",
          "paran_data",
          "interpretation"
        ],
        "title": "ParanMapResponse",
        "description": "Response for paran astrocartography"
      },
      "PeakActivation": {
        "properties": {
          "date": {
            "type": "string",
            "title": "Date",
            "description": "The date when the aspect reaches peak activation (YYYY-MM-DD format).",
            "examples": [
              "2025-08-15",
              "2025-11-14"
            ]
          },
          "duration_days": {
            "type": "integer",
            "title": "Duration Days",
            "description": "Duration of the peak activation period in days.",
            "examples": [
              7,
              14,
              21
            ]
          },
          "strength": {
            "type": "string",
            "title": "Strength",
            "description": "Relative strength of the activation period.",
            "examples": [
              "strong",
              "very_strong",
              "moderate"
            ]
          }
        },
        "type": "object",
        "required": [
          "date",
          "duration_days",
          "strength"
        ],
        "title": "PeakActivation",
        "description": "Peak activation period for a Solar Return aspect."
      },
      "PersonalAnalysisRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for natal chart calculation"
          },
          "calculation_time": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current time for transit analysis (uses current UTC time if not provided)"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Chart calculation options optimized for traditional analysis"
          },
          "orbs": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Orbs",
            "description": "Orb settings for aspects",
            "examples": [
              {
                "major_aspects_deg": 2
              },
              {
                "major_aspects_deg": 1.5
              },
              {
                "major_aspects_deg": 3
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "PersonalAnalysisRequest",
        "description": "Request for personal traditional analysis with natal chart correlation"
      },
      "PersonalAnalysisResponse": {
        "properties": {
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Response metadata"
          },
          "ascendant": {
            "additionalProperties": true,
            "type": "object",
            "title": "Ascendant",
            "description": "Ascendant data with ruler and dispositor"
          },
          "houses": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Houses",
            "description": "Complete 12-house data"
          },
          "planets": {
            "items": {
              "$ref": "#/components/schemas/EnhancedPlanetaryPosition"
            },
            "type": "array",
            "title": "Planets",
            "description": "Enhanced planetary positions"
          },
          "aspects": {
            "items": {
              "$ref": "#/components/schemas/EnhancedAspect"
            },
            "type": "array",
            "title": "Aspects",
            "description": "Enhanced aspects with reception analysis"
          },
          "fixed_stars": {
            "items": {
              "$ref": "#/components/schemas/FixedStarConjunction"
            },
            "type": "array",
            "title": "Fixed Stars",
            "description": "Fixed star conjunctions"
          },
          "lunar_phase": {
            "$ref": "#/components/schemas/LunarPhaseData",
            "description": "Current lunar phase information"
          },
          "chronocrator": {
            "$ref": "#/components/schemas/ChronoCratorData",
            "description": "Annual Profection Lord of the Year"
          },
          "rarity": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rarity",
            "description": "Rare cycle identifier"
          },
          "priority_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Priority Score",
            "description": "Relative strength marker"
          },
          "activates": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Activates",
            "description": "Triggered sensitive chart points"
          },
          "house_crossings_next_72h": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "House Crossings Next 72H",
            "description": "Upcoming house ingresses"
          },
          "life_areas": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Life Areas",
            "description": "Thematic life area tags"
          },
          "start_utc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Utc",
            "description": "Analysis period start time"
          },
          "end_utc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Utc",
            "description": "Analysis period end time"
          },
          "daypart_hint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Daypart Hint",
            "description": "Time of day context"
          }
        },
        "type": "object",
        "required": [
          "metadata",
          "ascendant",
          "houses",
          "planets",
          "aspects",
          "fixed_stars",
          "lunar_phase",
          "chronocrator"
        ],
        "title": "PersonalAnalysisResponse",
        "description": "Response for personal traditional analysis"
      },
      "PersonalizedDailyTextRequest": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "short",
              "paragraph",
              "bullets",
              "structured",
              "long"
            ],
            "title": "Format",
            "description": "Text output style",
            "default": "paragraph"
          },
          "emoji": {
            "type": "boolean",
            "title": "Emoji",
            "description": "Include emoji markers in the header",
            "default": true
          },
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Subject birth data"
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Date",
            "description": "Target date for prediction"
          },
          "horoscope_type": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "yearly"
            ],
            "title": "Horoscope Type",
            "description": "Timeframe",
            "default": "daily"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "default": "universal"
          },
          "include_transits": {
            "type": "boolean",
            "title": "Include Transits",
            "default": true
          },
          "include_progressions": {
            "type": "boolean",
            "title": "Include Progressions",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "PersonalizedDailyTextRequest"
      },
      "PersonalizedHoroscopeRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Subject birth data"
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Date",
            "description": "Target date for prediction"
          },
          "horoscope_type": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "yearly"
            ],
            "title": "Horoscope Type",
            "description": "Timeframe",
            "default": "daily"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "default": "universal"
          },
          "include_transits": {
            "type": "boolean",
            "title": "Include Transits",
            "default": true
          },
          "include_progressions": {
            "type": "boolean",
            "title": "Include Progressions",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "PersonalizedHoroscopeRequest"
      },
      "PersonalizedMonthlyTextRequest": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "short",
              "paragraph",
              "bullets",
              "structured",
              "long"
            ],
            "title": "Format",
            "description": "Text output style",
            "default": "paragraph"
          },
          "emoji": {
            "type": "boolean",
            "title": "Emoji",
            "description": "Include emoji markers in the header",
            "default": true
          },
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Subject birth data"
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Date",
            "description": "Target date for prediction"
          },
          "horoscope_type": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "yearly"
            ],
            "title": "Horoscope Type",
            "description": "Timeframe",
            "default": "daily"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "default": "universal"
          },
          "include_transits": {
            "type": "boolean",
            "title": "Include Transits",
            "default": true
          },
          "include_progressions": {
            "type": "boolean",
            "title": "Include Progressions",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "PersonalizedMonthlyTextRequest"
      },
      "PersonalizedWeeklyTextRequest": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "short",
              "paragraph",
              "bullets",
              "structured",
              "long"
            ],
            "title": "Format",
            "description": "Text output style",
            "default": "paragraph"
          },
          "emoji": {
            "type": "boolean",
            "title": "Emoji",
            "description": "Include emoji markers in the header",
            "default": true
          },
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Subject birth data"
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Date",
            "description": "Target date for prediction"
          },
          "horoscope_type": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "yearly"
            ],
            "title": "Horoscope Type",
            "description": "Timeframe",
            "default": "daily"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "default": "universal"
          },
          "include_transits": {
            "type": "boolean",
            "title": "Include Transits",
            "default": true
          },
          "include_progressions": {
            "type": "boolean",
            "title": "Include Progressions",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "PersonalizedWeeklyTextRequest"
      },
      "PersonalizedYearlyTextRequest": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "short",
              "paragraph",
              "bullets",
              "structured",
              "long"
            ],
            "title": "Format",
            "description": "Text output style",
            "default": "paragraph"
          },
          "emoji": {
            "type": "boolean",
            "title": "Emoji",
            "description": "Include emoji markers in the header",
            "default": true
          },
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Subject birth data"
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Date",
            "description": "Target date for prediction"
          },
          "horoscope_type": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "yearly"
            ],
            "title": "Horoscope Type",
            "description": "Timeframe",
            "default": "daily"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "default": "universal"
          },
          "include_transits": {
            "type": "boolean",
            "title": "Include Transits",
            "default": true
          },
          "include_progressions": {
            "type": "boolean",
            "title": "Include Progressions",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "PersonalizedYearlyTextRequest"
      },
      "PerspectiveType": {
        "type": "string",
        "enum": [
          "geocentric",
          "heliocentric",
          "draconic",
          "barycentric"
        ],
        "title": "PerspectiveType",
        "description": "Astronomical calculation perspective"
      },
      "PetCompatibilityRequest": {
        "properties": {
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject"
            },
            "type": "array",
            "maxItems": 2,
            "minItems": 2,
            "title": "Subjects",
            "description": "Owner and pet subjects"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PetOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Pet-specific options"
          }
        },
        "type": "object",
        "required": [
          "subjects"
        ],
        "title": "PetCompatibilityRequest",
        "description": "Request model for pet-human compatibility"
      },
      "PetCompatibilityResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status",
            "default": true
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "Compatibility analysis data",
            "example": {
              "care_style": "Your caregiving approach matches your pet's needs.",
              "communication": "Natural intuitive communication makes daily interaction effortless.",
              "compatibility_score": 85,
              "emotional_bond": "Deep emotional connection with strong mutual understanding.",
              "energy_match": "Your energy levels complement each other perfectly.",
              "lifestyle_fit": "Your lifestyle provides the ideal environment for your pet.",
              "overall_score": 85,
              "recommendations": [
                "Maintain consistent daily routines",
                "Schedule regular play sessions",
                "Create quiet bonding moments"
              ]
            }
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "Success message"
          }
        },
        "type": "object",
        "required": [
          "data",
          "message"
        ],
        "title": "PetCompatibilityResponse",
        "description": "Response model for human-pet compatibility"
      },
      "PetHealthSensitivitiesResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status",
            "default": true
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "Response data"
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "Success message"
          }
        },
        "type": "object",
        "required": [
          "data",
          "message"
        ],
        "title": "PetHealthSensitivitiesResponse",
        "description": "Response model for pet health sensitivities",
        "example": {
          "data": {
            "breed_considerations": "Specific considerations for persian",
            "dietary_considerations": {
              "avoid": [
                "Artificial preservatives",
                "High-grain content"
              ],
              "recommended": [
                "High-quality protein",
                "Limited ingredients",
                "Grain-free options"
              ],
              "supplements": "Probiotics for digestive health"
            },
            "exercise_needs": {
              "duration": "30-45 minutes daily",
              "intensity": "Moderate with bursts of high activity",
              "preferred_activities": [
                "Interactive play",
                "Mental stimulation games"
              ]
            },
            "preventive_care": {
              "focus_areas": [
                "Dental health",
                "Weight management"
              ],
              "regular_checkups": "Every 6 months",
              "seasonal_care": "Extra grooming during shedding seasons"
            },
            "sensitive_areas": {
              "digestive": "Virgo influence suggests sensitive stomach - premium diet recommended",
              "respiratory": "Air sign emphasis indicates respiratory sensitivity to allergens"
            },
            "stress_triggers": [
              "Loud noises during Mercury retrograde",
              "Changes in routine",
              "Unfamiliar environments"
            ]
          },
          "disclaimer": "For entertainment purposes only. Always consult a qualified veterinarian for health concerns.",
          "message": "Health sensitivity analysis completed",
          "success": true
        }
      },
      "PetMultiSubjectRequest": {
        "properties": {
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject"
            },
            "type": "array",
            "maxItems": 10,
            "minItems": 2,
            "title": "Subjects",
            "description": "Subjects for calculation (defaults to 2 test subjects if not provided)"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StandardOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Request options"
          },
          "pet_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PetOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Pet-specific options"
          }
        },
        "type": "object",
        "title": "PetMultiSubjectRequest",
        "description": "Request model for multi-pet endpoints",
        "example": {
          "options": {
            "language": "en"
          },
          "subjects": [
            {
              "birth_data": {
                "city": "London",
                "country_code": "GB",
                "day": 11,
                "hour": 18,
                "minute": 15,
                "month": 5,
                "year": 1985
              },
              "name": "Person 1"
            },
            {
              "birth_data": {
                "city": "Paris",
                "country_code": "FR",
                "day": 15,
                "hour": 14,
                "minute": 30,
                "month": 3,
                "year": 1990
              },
              "name": "Person 2"
            }
          ]
        }
      },
      "PetOptions": {
        "properties": {
          "pet_type": {
            "type": "string",
            "title": "Pet Type",
            "description": "Type of pet: dog, cat, bird, horse, etc.",
            "default": "dog"
          },
          "breed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Breed",
            "description": "Pet breed (optional)"
          },
          "training_type": {
            "type": "string",
            "title": "Training Type",
            "description": "Type of training for training windows",
            "default": "obedience"
          },
          "language": {
            "type": "string",
            "title": "Language",
            "description": "Language code - see /api/v3/glossary/languages for full list",
            "default": "en"
          }
        },
        "type": "object",
        "title": "PetOptions",
        "description": "Pet-specific options"
      },
      "PetPersonalityResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status",
            "default": true
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "Pet personality analysis data",
            "example": {
              "activity_patterns": {
                "active_hours": "Most active during morning and evening hours",
                "energy_level": "Your pet has moderate energy levels, enjoying regular activity balanced with rest periods.",
                "exercise_needs": "Requires daily interactive play sessions",
                "playfulness": "Highly playful and responsive to interactive toys"
              },
              "basic_nature": {
                "dominant_element": "Water",
                "moon_sign": "Gem",
                "sun_sign": "Pis"
              },
              "social_behavior": {
                "pack_dynamics": "Naturally assumes a follower role",
                "stranger_reaction": "Cautious but curious with new people"
              }
            }
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "Success message"
          }
        },
        "type": "object",
        "required": [
          "data",
          "message"
        ],
        "title": "PetPersonalityResponse",
        "description": "Response model for pet personality analysis"
      },
      "PetSingleSubjectRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject",
            "description": "Subject for calculation"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StandardOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Request options"
          },
          "pet_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PetOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Pet-specific options"
          },
          "owner": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional owner data for enhanced pet analysis"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "PetSingleSubjectRequest",
        "description": "Request model for single pet endpoints",
        "example": {
          "options": {
            "house_system": "P",
            "language": "en"
          },
          "subject": {
            "birth_data": {
              "city": "London",
              "country_code": "GB",
              "day": 11,
              "hour": 18,
              "minute": 15,
              "month": 5,
              "year": 1985
            },
            "name": "John Doe"
          }
        }
      },
      "PetTrainingWindowsResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status",
            "default": true
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "Response data"
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "Success message"
          }
        },
        "type": "object",
        "required": [
          "data",
          "message"
        ],
        "title": "PetTrainingWindowsResponse",
        "description": "Response model for pet training windows",
        "example": {
          "data": {
            "general_advice": "Training is most effective during your pet's natural alert periods",
            "optimal_times": [
              {
                "date": "2024-01-15",
                "energy_level": "high",
                "focus": "Basic commands",
                "time_window": "09:00-11:00"
              }
            ],
            "optimal_windows": [
              {
                "activity": "Training session",
                "date": "2024-01-15",
                "success_probability": 85
              }
            ],
            "recommendations": [
              "Use positive reinforcement during high-energy periods"
            ],
            "training_type": "obedience",
            "training_windows": [
              {
                "date": "2024-01-15",
                "effectiveness": "high"
              }
            ]
          },
          "message": "Training window analysis completed",
          "success": true
        }
      },
      "PlanetAstrodyneData": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Planet name"
          },
          "power": {
            "type": "number",
            "title": "Power",
            "description": "Total power (astrodynes)"
          },
          "harmony": {
            "type": "number",
            "title": "Harmony",
            "description": "Harmony value (+ harmodynes / - discordynes)"
          },
          "house_power": {
            "type": "number",
            "title": "House Power",
            "description": "Power from house position"
          },
          "aspect_power": {
            "type": "number",
            "title": "Aspect Power",
            "description": "Power from aspects"
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign (3-letter)"
          },
          "house": {
            "type": "integer",
            "maximum": 12,
            "minimum": 1,
            "title": "House",
            "description": "House number"
          }
        },
        "type": "object",
        "required": [
          "name",
          "power",
          "harmony",
          "house_power",
          "aspect_power",
          "sign",
          "house"
        ],
        "title": "PlanetAstrodyneData",
        "description": "Astrodyne data for a single planet"
      },
      "PlanetaryPosition": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Name of the celestial point (e.g., 'Sun', 'Moon', 'Ascendant').",
            "examples": [
              "Sun",
              "Moon",
              "Mercury",
              "Mean_Node",
              "True_South_Node",
              "Ascendant"
            ]
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign the point is in using 3-letter abbreviations.",
            "examples": [
              "Ari",
              "Tau",
              "Gem",
              "Can",
              "Leo",
              "Vir",
              "Lib",
              "Sco",
              "Sag",
              "Cap",
              "Aqu",
              "Pis"
            ]
          },
          "degree": {
            "type": "number",
            "title": "Degree",
            "description": "The degree within the zodiac sign (0.0 to 29.99). Precision controlled by 'precision' parameter.",
            "examples": [
              20.8231,
              15.45,
              0.12,
              29.99
            ]
          },
          "absolute_longitude": {
            "type": "number",
            "title": "Absolute Longitude",
            "description": "The absolute longitude in degrees (0.0 to 360.0). Full zodiac position from 0° Aries.",
            "examples": [
              50.8231,
              135.45,
              270.12,
              359.99
            ]
          },
          "house": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "House",
            "description": "The house number the point is in (1-12). None for perspectives where houses are not applicable (heliocentric, barycentric).",
            "examples": [
              1,
              7,
              10,
              12,
              null
            ]
          },
          "is_retrograde": {
            "type": "boolean",
            "title": "Is Retrograde",
            "description": "Indicates if the planet is in retrograde motion. Not applicable to points like Ascendant.",
            "examples": [
              false,
              true
            ]
          },
          "speed": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 16,
                "minimum": -3
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed",
            "description": "Speed in longitude (degrees/day). Negative values indicate retrograde motion. Not applicable to house cusps and some points.",
            "examples": [
              1.019021,
              -0.09889,
              11.813833,
              null
            ]
          }
        },
        "type": "object",
        "required": [
          "name",
          "sign",
          "degree",
          "absolute_longitude",
          "is_retrograde"
        ],
        "title": "PlanetaryPosition"
      },
      "PowerZonesRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for power zone calculation"
          },
          "search_options": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Search Options",
            "description": "Power zone search configuration"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "PowerZonesRequest",
        "description": "Request for finding planetary line intersections"
      },
      "PowerZonesResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "power_zones": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Power Zones",
            "description": "Identified power zones with coordinates, strengths, and nearby cities"
          },
          "total_found": {
            "type": "integer",
            "title": "Total Found",
            "description": "Total number of power zones found"
          },
          "filters_applied": {
            "additionalProperties": true,
            "type": "object",
            "title": "Filters Applied",
            "description": "Search filters that were applied"
          },
          "strongest_zone": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Strongest Zone",
            "description": "The strongest power zone"
          },
          "analysis_summary": {
            "type": "string",
            "title": "Analysis Summary",
            "description": "Summary of findings"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Calculation metadata"
          }
        },
        "type": "object",
        "required": [
          "power_zones",
          "total_found",
          "filters_applied",
          "analysis_summary",
          "metadata"
        ],
        "title": "PowerZonesResponse",
        "description": "Response for power zones search"
      },
      "ProfectionTimelineRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for profection calculation"
          },
          "start_age": {
            "type": "integer",
            "title": "Start Age",
            "description": "Starting age for timeline",
            "default": 0
          },
          "end_age": {
            "type": "integer",
            "title": "End Age",
            "description": "Ending age for timeline",
            "default": 84
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "ProfectionTimelineRequest",
        "description": "Request for Profection Timeline calculation"
      },
      "ProgressionChartResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data",
            "description": "Data of the natal chart subject."
          },
          "progressed_data": {
            "title": "Progressed Data",
            "description": "Data of the progressed chart."
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data for the progressed positions."
          },
          "progression_type": {
            "type": "string",
            "title": "Progression Type",
            "description": "Type of progression used."
          },
          "target_date": {
            "type": "string",
            "title": "Target Date",
            "description": "Target date for the progression."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "progressed_data",
          "chart_data",
          "progression_type",
          "target_date"
        ],
        "title": "ProgressionChartResponse",
        "description": "The response for a progression chart calculation."
      },
      "ProgressionReportRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "target_date": {
            "type": "string",
            "format": "date",
            "title": "Target Date",
            "description": "The date for which to calculate progressions.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ],
            "example": "2024-03-15"
          },
          "progression_type": {
            "type": "string",
            "enum": [
              "secondary",
              "primary",
              "tertiary",
              "minor"
            ],
            "title": "Progression Type",
            "description": "Type of progression calculation.",
            "default": "secondary"
          },
          "location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current location for relocated progressions. If not provided, birth location is used."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "target_date"
        ],
        "title": "ProgressionReportRequest"
      },
      "ProgressionReportResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data",
            "description": "Data of the natal chart subject."
          },
          "progressed_data": {
            "title": "Progressed Data",
            "description": "Data of the progressed chart."
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data for the progressed positions."
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/Interpretation"
            },
            "type": "array",
            "title": "Interpretations",
            "description": "Interpretations for the progressions."
          },
          "progression_type": {
            "type": "string",
            "title": "Progression Type",
            "description": "Type of progression used."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "progressed_data",
          "chart_data",
          "interpretations",
          "progression_type"
        ],
        "title": "ProgressionReportResponse",
        "description": "The response for a progression analysis with interpretations."
      },
      "ProgressionRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "target_date": {
            "type": "string",
            "format": "date",
            "title": "Target Date",
            "description": "The date for which to calculate progressions.",
            "examples": [
              "2024-03-15",
              "2024-07-21",
              "2024-12-08"
            ],
            "example": "2024-03-15"
          },
          "progression_type": {
            "type": "string",
            "enum": [
              "secondary",
              "primary",
              "tertiary",
              "minor"
            ],
            "title": "Progression Type",
            "description": "Type of progression calculation.",
            "default": "secondary"
          },
          "location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current location for relocated progressions. If not provided, birth location is used."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "target_date"
        ],
        "title": "ProgressionRequest"
      },
      "QuintessenceRequest": {
        "properties": {
          "cards": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Cards",
            "description": "List of card IDs in spread (defaults to The Fool, Magician, High Priestess)",
            "default": [
              "major_00",
              "major_01",
              "major_02"
            ]
          },
          "include_interpretation": {
            "type": "boolean",
            "title": "Include Interpretation",
            "description": "Include interpretation of quintessence",
            "default": true
          }
        },
        "type": "object",
        "title": "QuintessenceRequest",
        "description": "Request for quintessence calculation"
      },
      "QuintessenceResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "quintessence_card": {
            "$ref": "#/components/schemas/TarotCard",
            "description": "Quintessence card"
          },
          "calculation": {
            "additionalProperties": true,
            "type": "object",
            "title": "Calculation",
            "description": "Calculation details"
          },
          "interpretation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interpretation",
            "description": "Interpretation"
          }
        },
        "type": "object",
        "required": [
          "success",
          "quintessence_card",
          "calculation"
        ],
        "title": "QuintessenceResponse",
        "description": "Response for quintessence calculation"
      },
      "RelationshipDynamics": {
        "properties": {
          "harmony_percentage": {
            "type": "number",
            "maximum": 100,
            "minimum": 0,
            "title": "Harmony Percentage",
            "description": "Percentage of harmonious aspects (trines, sextiles, beneficial conjunctions). Range: 0-100."
          },
          "tension_percentage": {
            "type": "number",
            "maximum": 100,
            "minimum": 0,
            "title": "Tension Percentage",
            "description": "Percentage of challenging aspects (squares, oppositions). Range: 0-100."
          },
          "dynamic_type": {
            "type": "string",
            "title": "Dynamic Type",
            "description": "Overall relationship dynamic type.",
            "examples": [
              "Harmonious Flow",
              "Dynamic Growth",
              "Balanced Exchange",
              "Intense Connection",
              "Challenging Growth"
            ]
          },
          "key_strengths": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Key Strengths",
            "description": "Key harmonious aspects that support the relationship."
          },
          "growth_areas": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Growth Areas",
            "description": "Challenging aspects that require conscious work."
          },
          "summary": {
            "type": "string",
            "title": "Summary",
            "description": "Brief astrological summary of the relationship dynamics."
          }
        },
        "type": "object",
        "required": [
          "harmony_percentage",
          "tension_percentage",
          "dynamic_type",
          "summary"
        ],
        "title": "RelationshipDynamics",
        "description": "Analysis of relationship harmony vs tension based on aspects."
      },
      "RelationshipScoreResponse": {
        "properties": {
          "score": {
            "type": "number",
            "title": "Score",
            "description": "The calculated relationship score (Discepolo method - measures significance, not harmony)."
          },
          "score_description": {
            "type": "string",
            "title": "Score Description",
            "description": "A textual description of the score's meaning."
          },
          "is_destiny_sign": {
            "type": "boolean",
            "title": "Is Destiny Sign",
            "description": "Indicates if the subjects share a destiny sign (same modality)."
          },
          "aspects": {
            "items": {
              "$ref": "#/components/schemas/Aspect"
            },
            "type": "array",
            "title": "Aspects",
            "description": "The key aspects that contributed to the score."
          },
          "dynamics": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RelationshipDynamics"
              },
              {
                "type": "null"
              }
            ],
            "description": "Detailed analysis of relationship harmony vs tension. Helps interpret the score contextually."
          },
          "subject_data": {
            "$ref": "#/components/schemas/SynastryData"
          }
        },
        "type": "object",
        "required": [
          "score",
          "score_description",
          "is_destiny_sign",
          "aspects",
          "subject_data"
        ],
        "title": "RelationshipScoreResponse"
      },
      "RelocationChartRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Original birth data"
          },
          "options": {
            "$ref": "#/components/schemas/RelocationOptions",
            "description": "Relocation calculation options"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "RelocationChartRequest",
        "description": "Request for relocated natal chart"
      },
      "RelocationChartResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Whether the calculation was successful",
            "default": true
          },
          "natal_location": {
            "additionalProperties": true,
            "type": "object",
            "title": "Natal Location",
            "description": "Natal (birth) location details"
          },
          "relocation_location": {
            "additionalProperties": true,
            "type": "object",
            "title": "Relocation Location",
            "description": "Target relocation location details"
          },
          "ascendant": {
            "additionalProperties": true,
            "type": "object",
            "title": "Ascendant",
            "description": "Ascendant comparison (natal, relocated, shift)"
          },
          "midheaven": {
            "additionalProperties": true,
            "type": "object",
            "title": "Midheaven",
            "description": "Midheaven comparison (natal, relocated, shift)"
          },
          "natal_houses": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Natal Houses",
            "description": "Natal chart house cusps"
          },
          "relocated_houses": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Relocated Houses",
            "description": "Relocated chart house cusps"
          },
          "planetary_positions": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Planetary Positions",
            "description": "Planetary positions with house placements"
          },
          "angular_planets": {
            "additionalProperties": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            "type": "object",
            "title": "Angular Planets",
            "description": "Planets near angles (ASC/MC/DS/IC)"
          },
          "house_changes": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "House Changes",
            "description": "Planets that changed houses"
          },
          "key_factors": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Key Factors",
            "description": "Key interpretation factors"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Calculation metadata"
          }
        },
        "type": "object",
        "required": [
          "natal_location",
          "relocation_location",
          "ascendant",
          "midheaven",
          "natal_houses",
          "relocated_houses",
          "planetary_positions",
          "angular_planets",
          "house_changes",
          "key_factors",
          "metadata"
        ],
        "title": "RelocationChartResponse",
        "description": "Response for relocated chart"
      },
      "RelocationOptions": {
        "properties": {
          "target_location": {
            "$ref": "#/components/schemas/LocationInput",
            "description": "Target location for relocation (defaults to New York, US)"
          },
          "show_changes": {
            "type": "boolean",
            "title": "Show Changes",
            "description": "Show changes compared to natal chart",
            "default": true
          },
          "highlight_angular_changes": {
            "type": "boolean",
            "title": "Highlight Angular Changes",
            "description": "Highlight angular house changes",
            "default": true
          },
          "include_aspect_changes": {
            "type": "boolean",
            "title": "Include Aspect Changes",
            "description": "Include aspect pattern changes",
            "default": true
          },
          "orb_tolerance": {
            "type": "number",
            "maximum": 5,
            "minimum": 0.5,
            "title": "Orb Tolerance",
            "description": "Orb tolerance for planetary line proximity",
            "default": 2
          }
        },
        "type": "object",
        "title": "RelocationOptions",
        "description": "Options for relocation chart calculations"
      },
      "RenderOptions": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "svg",
              "png",
              "jpg",
              "webp",
              "pdf"
            ],
            "title": "Format",
            "description": "Output format: svg (vector, default), png (transparent raster), jpg (compressed, email-compatible), webp (modern web, 30% smaller), pdf (print-ready vector)",
            "default": "svg",
            "examples": [
              "svg",
              "png",
              "jpg",
              "webp",
              "pdf"
            ]
          },
          "width": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 4096,
                "minimum": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Width",
            "description": "Output width in pixels. Height auto-calculated to maintain aspect ratio. If not set, uses default SVG size.",
            "examples": [
              800,
              1080,
              1200,
              2048
            ]
          },
          "scale": {
            "type": "number",
            "maximum": 4,
            "minimum": 0.5,
            "title": "Scale",
            "description": "Scale factor for higher resolution output (2.0 = retina/HiDPI). Applied when width is not set.",
            "default": 1,
            "examples": [
              1,
              1.5,
              2,
              3
            ]
          },
          "quality": {
            "type": "integer",
            "maximum": 100,
            "minimum": 1,
            "title": "Quality",
            "description": "Quality for lossy formats (jpg, webp). Range 1-100, higher = better quality but larger file.",
            "default": 90,
            "examples": [
              75,
              85,
              90,
              95
            ]
          },
          "theme": {
            "type": "string",
            "enum": [
              "light",
              "dark",
              "dark-high-contrast",
              "classic"
            ],
            "title": "Theme",
            "description": "Base visual theme for chart: light, dark, dark-high-contrast, classic. Use custom_colors to override specific colors.",
            "default": "dark"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Language for chart labels",
            "default": "en"
          },
          "custom_colors": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomColors"
              },
              {
                "type": "null"
              }
            ],
            "description": "Custom color overrides. Specify only the colors you want to change; others will use theme defaults."
          }
        },
        "type": "object",
        "title": "RenderOptions",
        "description": "Options for chart rendering output with multi-format support"
      },
      "ReportInterpretation": {
        "properties": {
          "factor": {
            "type": "string",
            "title": "Factor",
            "description": "The astrological factor being interpreted (e.g., 'Sun in Libra')."
          },
          "text": {
            "type": "string",
            "title": "Text",
            "description": "The textual interpretation of the factor."
          }
        },
        "type": "object",
        "required": [
          "factor",
          "text"
        ],
        "title": "ReportInterpretation"
      },
      "ReportOptions": {
        "properties": {
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "description": "The astrological tradition to use for interpretations. **universal**: A synthesis of modern psychological and classical methods, based on the works of Parker, Arroyo, and Hand. Recommended for most users. **psychological**: Focuses on inner potential and psychological development (based on Liz Greene). **event_oriented**: A more classical approach focused on concrete life events (based on Robert Zoller). **classical**: Interpretations based on Hellenistic and traditional astrology (Ptolemy, Valens), focusing on fortune and external outcomes.",
            "default": "universal"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "The language for the report's text.",
            "default": "en"
          }
        },
        "type": "object",
        "title": "ReportOptions"
      },
      "ReportSection": {
        "properties": {
          "title": {
            "type": "string",
            "title": "Title",
            "description": "Title of the report section (e.g., 'Planets in Signs')."
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/ReportInterpretation"
            },
            "type": "array",
            "title": "Interpretations"
          }
        },
        "type": "object",
        "required": [
          "title",
          "interpretations"
        ],
        "title": "ReportSection"
      },
      "SVGMetadata": {
        "properties": {
          "width": {
            "type": "integer",
            "title": "Width",
            "description": "SVG width in pixels"
          },
          "height": {
            "type": "integer",
            "title": "Height",
            "description": "SVG height in pixels"
          },
          "file_size_bytes": {
            "type": "integer",
            "title": "File Size Bytes",
            "description": "SVG content size in bytes"
          },
          "element_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object",
            "title": "Element Counts",
            "description": "Count of different SVG elements"
          },
          "theme": {
            "type": "string",
            "title": "Theme",
            "description": "Applied visual theme"
          },
          "generation_time_ms": {
            "type": "number",
            "title": "Generation Time Ms",
            "description": "Generation time in milliseconds"
          }
        },
        "type": "object",
        "required": [
          "width",
          "height",
          "file_size_bytes",
          "element_counts",
          "theme",
          "generation_time_ms"
        ],
        "title": "SVGMetadata",
        "description": "SVG generation metadata"
      },
      "SVGOptions": {
        "properties": {
          "theme": {
            "type": "string",
            "enum": [
              "light",
              "dark",
              "dark-high-contrast",
              "classic"
            ],
            "title": "Theme",
            "description": "Visual theme for the SVG chart output.",
            "default": "dark"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Language for labels in the SVG chart output.",
            "default": "en"
          }
        },
        "type": "object",
        "title": "SVGOptions"
      },
      "SarosHistory": {
        "properties": {
          "previous_in_series": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous In Series",
            "description": "Date of previous eclipse in this series"
          },
          "theme": {
            "type": "string",
            "title": "Theme",
            "description": "Recurring theme of this Saros series"
          },
          "personal_connection": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Personal Connection",
            "description": "Advice for personal connection to the series"
          }
        },
        "type": "object",
        "required": [
          "theme"
        ],
        "title": "SarosHistory",
        "description": "Historical context for Saros series"
      },
      "SarosInfo": {
        "properties": {
          "series_number": {
            "type": "integer",
            "title": "Series Number",
            "description": "Saros series number",
            "examples": [
              139,
              118,
              145
            ]
          },
          "member_number": {
            "type": "integer",
            "title": "Member Number",
            "description": "Member number within the series",
            "examples": [
              30,
              52,
              15
            ]
          },
          "total_members": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total Members",
            "description": "Total number of eclipses in this series",
            "examples": [
              71,
              85,
              77
            ]
          },
          "series_start": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Series Start",
            "description": "Start date of the Saros series",
            "examples": [
              "1501-05-17",
              "1070-05-24"
            ]
          },
          "series_end": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Series End",
            "description": "End date of the Saros series",
            "examples": [
              "2763-07-03",
              "2394-07-06"
            ]
          },
          "series_theme": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Series Theme",
            "description": "Astrological theme of this Saros series",
            "examples": [
              "Innovation and breakthroughs",
              "Emotional revelations"
            ]
          }
        },
        "type": "object",
        "required": [
          "series_number",
          "member_number"
        ],
        "title": "SarosInfo",
        "description": "Information about Saros eclipse series"
      },
      "SearchCriteria": {
        "properties": {
          "life_area": {
            "type": "string",
            "enum": [
              "identity",
              "health",
              "finance",
              "career",
              "love",
              "relationships",
              "creativity",
              "spirituality",
              "home",
              "learning",
              "communication",
              "travel",
              "overall"
            ],
            "title": "Life Area",
            "description": "Primary life area to optimize for",
            "default": "overall"
          },
          "preferred_planets": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preferred Planets",
            "description": "Planets to emphasize in search",
            "examples": [
              [
                "Sun",
                "Jupiter",
                "Mars"
              ],
              [
                "Venus",
                "Moon",
                "Jupiter"
              ],
              [
                "Venus",
                "Neptune",
                "Moon"
              ]
            ]
          },
          "preferred_line_types": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preferred Line Types",
            "description": "Line types to prioritize",
            "examples": [
              [
                "MC",
                "AC"
              ],
              [
                "AC",
                "DS"
              ],
              [
                "MC",
                "IC"
              ]
            ]
          },
          "minimum_score": {
            "type": "number",
            "maximum": 10,
            "minimum": 1,
            "title": "Minimum Score",
            "description": "Minimum overall score for results",
            "default": 6
          },
          "avoid_debilitated": {
            "type": "boolean",
            "title": "Avoid Debilitated",
            "description": "Avoid locations where key planets are debilitated",
            "default": true
          },
          "orb_tolerance": {
            "type": "number",
            "maximum": 5,
            "minimum": 0.5,
            "title": "Orb Tolerance",
            "description": "Orb tolerance for line proximity in degrees",
            "default": 2
          }
        },
        "type": "object",
        "title": "SearchCriteria",
        "description": "Criteria for finding optimal locations"
      },
      "SearchLocationsRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for search"
          },
          "search_criteria": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SearchCriteria"
              },
              {
                "type": "null"
              }
            ],
            "description": "Search and scoring criteria (defaults to overall life area)"
          },
          "location_filters": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LocationFilters"
              },
              {
                "type": "null"
              }
            ],
            "description": "Geographic and demographic filters"
          },
          "result_options": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result Options",
            "description": "Result formatting options"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "SearchLocationsRequest",
        "description": "Request for searching optimal locations"
      },
      "SearchLocationsResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/LocationSearchResult"
            },
            "type": "array",
            "title": "Results",
            "description": "Search results"
          },
          "search_metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Search Metadata",
            "description": "Search statistics"
          },
          "recommendations": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recommendations",
            "description": "Top recommendations"
          }
        },
        "type": "object",
        "required": [
          "results",
          "search_metadata"
        ],
        "title": "SearchLocationsResponse",
        "description": "Response for location search"
      },
      "SephirahPosition": {
        "properties": {
          "position": {
            "type": "integer",
            "title": "Position",
            "description": "Position number (1-10)"
          },
          "sephirah_name": {
            "type": "string",
            "title": "Sephirah Name",
            "description": "Name of the Sephirah"
          },
          "meaning": {
            "type": "string",
            "title": "Meaning",
            "description": "Sephirah meaning"
          },
          "life_areas": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Life Areas",
            "description": "Associated life areas"
          },
          "card": {
            "$ref": "#/components/schemas/TarotCard",
            "description": "Card in this position"
          },
          "orientation": {
            "type": "string",
            "enum": [
              "upright",
              "reversed"
            ],
            "title": "Orientation",
            "description": "Card orientation"
          },
          "interpretation": {
            "type": "string",
            "title": "Interpretation",
            "description": "Position interpretation"
          },
          "timing_prediction": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timing Prediction",
            "description": "Timing for this position"
          }
        },
        "type": "object",
        "required": [
          "position",
          "sephirah_name",
          "meaning",
          "life_areas",
          "card",
          "orientation",
          "interpretation"
        ],
        "title": "SephirahPosition",
        "description": "Position on the Tree of Life"
      },
      "SingleSubjectRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__standard__Subject",
            "description": "Subject for calculation"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StandardOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Request options"
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "SingleSubjectRequest",
        "description": "Base request model for endpoints requiring one subject",
        "example": {
          "options": {
            "house_system": "P",
            "language": "en"
          },
          "subject": {
            "birth_data": {
              "city": "London",
              "country_code": "GB",
              "day": 11,
              "hour": 18,
              "minute": 15,
              "month": 5,
              "year": 1985
            },
            "name": "John Doe"
          }
        }
      },
      "SolarReturnChartResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data"
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData"
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "chart_data"
        ],
        "title": "SolarReturnChartResponse"
      },
      "SolarReturnReportRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "return_year": {
            "type": "integer",
            "title": "Return Year",
            "description": "The year for which the solar return is calculated.",
            "examples": [
              2024,
              2025,
              2023
            ]
          },
          "return_location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location at the moment of the solar return. If not provided, birth location is used."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "return_year"
        ],
        "title": "SolarReturnReportRequest"
      },
      "SolarReturnReportResponse": {
        "properties": {
          "subject_data": {
            "title": "Subject Data",
            "description": "Data of the solar return chart subject."
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data for the solar return."
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/Interpretation"
            },
            "type": "array",
            "title": "Interpretations",
            "description": "A list of interpretations for the solar return chart."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "chart_data",
          "interpretations"
        ],
        "title": "SolarReturnReportResponse",
        "description": "The response for a solar return analysis."
      },
      "SolarReturnRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "return_year": {
            "type": "integer",
            "title": "Return Year",
            "description": "The year for which the solar return is calculated.",
            "examples": [
              2024,
              2025,
              2023
            ]
          },
          "return_location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location at the moment of the solar return. If not provided, birth location is used."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "return_year"
        ],
        "title": "SolarReturnRequest"
      },
      "SolarReturnTransitChartResponse": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/TransitEvent"
            },
            "type": "array",
            "title": "Events",
            "description": "A list of exact transit events within the requested date range."
          }
        },
        "type": "object",
        "required": [
          "events"
        ],
        "title": "SolarReturnTransitChartResponse",
        "description": "The response for a solar return transit calculation."
      },
      "SolarReturnTransitReportResponse": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/InterpretedTransitEvent"
            },
            "type": "array",
            "title": "Events",
            "description": "A list of exact transit events with their interpretations."
          }
        },
        "type": "object",
        "required": [
          "events"
        ],
        "title": "SolarReturnTransitReportResponse",
        "description": "The response for a solar return transit report."
      },
      "SolarReturnTransitRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "return_year": {
            "type": "integer",
            "title": "Return Year",
            "description": "The year for which the solar return is calculated.",
            "examples": [
              2024,
              2025,
              2023
            ]
          },
          "return_location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location at the moment of the solar return. If not provided, birth location is used."
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "date_range": {
            "$ref": "#/components/schemas/DateRange",
            "description": "The date range to search for transits."
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "The maximum orb (in degrees) to consider an aspect exact. Defaults to 1.0.",
            "default": 1,
            "examples": [
              1,
              2,
              0.5,
              3
            ]
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject",
          "return_year",
          "date_range"
        ],
        "title": "SolarReturnTransitRequest"
      },
      "SpreadInfo": {
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "single",
              "three_card",
              "celtic_cross",
              "zodiac_wheel",
              "synastry",
              "houses",
              "custom"
            ],
            "title": "Type",
            "description": "Type of spread"
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Spread name"
          },
          "card_count": {
            "type": "integer",
            "title": "Card Count",
            "description": "Number of cards"
          },
          "positions": {
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "type": "array",
            "title": "Positions",
            "description": "Position descriptions"
          }
        },
        "type": "object",
        "required": [
          "type",
          "name",
          "card_count",
          "positions"
        ],
        "title": "SpreadInfo",
        "description": "Spread layout information"
      },
      "StandardOptions": {
        "properties": {
          "house_system": {
            "$ref": "#/components/schemas/HouseSystem",
            "description": "House system to use",
            "default": "P"
          },
          "language": {
            "$ref": "#/components/schemas/Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "$ref": "#/components/schemas/Tradition",
            "description": "Astrological tradition",
            "default": "universal"
          },
          "perspective": {
            "$ref": "#/components/schemas/PerspectiveType",
            "description": "Astronomical calculation perspective. Geocentric (Earth-centered) is traditional astrology. Other perspectives offer specialized insights.",
            "default": "geocentric"
          },
          "detail_level": {
            "$ref": "#/components/schemas/DetailLevel",
            "description": "Level of detail in response",
            "default": "standard"
          },
          "include_interpretations": {
            "type": "boolean",
            "title": "Include Interpretations",
            "description": "Include textual interpretations",
            "default": true
          },
          "include_raw_data": {
            "type": "boolean",
            "title": "Include Raw Data",
            "description": "Include raw astronomical data",
            "default": false
          },
          "use_cache": {
            "type": "boolean",
            "title": "Use Cache",
            "description": "Use cached calculations if available",
            "default": true
          },
          "precision_mode": {
            "type": "boolean",
            "title": "Precision Mode",
            "description": "Use high-precision calculations (slower)",
            "default": false
          }
        },
        "type": "object",
        "title": "StandardOptions",
        "description": "Standard options applicable to all requests",
        "example": {
          "house_system": "P",
          "language": "en",
          "perspective": "geocentric",
          "tradition": "universal"
        }
      },
      "SunSignDailyRequest": {
        "properties": {
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign name or abbreviation"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "description": "Astrological tradition to use",
            "default": "universal"
          },
          "minimum_strength": {
            "type": "number",
            "maximum": 5,
            "minimum": 0,
            "title": "Minimum Strength",
            "description": "Minimum aspect strength included in responses",
            "default": 0
          },
          "date": {
            "type": "string",
            "format": "date",
            "title": "Date",
            "description": "Target date"
          }
        },
        "type": "object",
        "required": [
          "sign"
        ],
        "title": "SunSignDailyRequest"
      },
      "SunSignDailyTextRequest": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "short",
              "paragraph",
              "bullets",
              "structured",
              "long"
            ],
            "title": "Format",
            "description": "Text output style",
            "default": "paragraph"
          },
          "emoji": {
            "type": "boolean",
            "title": "Emoji",
            "description": "Include emoji markers in the header",
            "default": true
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign name or abbreviation"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "description": "Astrological tradition to use",
            "default": "universal"
          },
          "minimum_strength": {
            "type": "number",
            "maximum": 5,
            "minimum": 0,
            "title": "Minimum Strength",
            "description": "Minimum aspect strength included in responses",
            "default": 0
          },
          "date": {
            "type": "string",
            "format": "date",
            "title": "Date",
            "description": "Target date"
          }
        },
        "type": "object",
        "required": [
          "sign"
        ],
        "title": "SunSignDailyTextRequest"
      },
      "SunSignMonthlyTextRequest": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "short",
              "paragraph",
              "bullets",
              "structured",
              "long"
            ],
            "title": "Format",
            "description": "Text output style",
            "default": "paragraph"
          },
          "emoji": {
            "type": "boolean",
            "title": "Emoji",
            "description": "Include emoji markers in the header",
            "default": true
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign name or abbreviation"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "description": "Astrological tradition to use",
            "default": "universal"
          },
          "minimum_strength": {
            "type": "number",
            "maximum": 5,
            "minimum": 0,
            "title": "Minimum Strength",
            "description": "Minimum aspect strength included in responses",
            "default": 0
          },
          "year": {
            "type": "integer",
            "title": "Year"
          },
          "month": {
            "type": "integer",
            "maximum": 12,
            "minimum": 1,
            "title": "Month",
            "description": "Month"
          }
        },
        "type": "object",
        "required": [
          "sign"
        ],
        "title": "SunSignMonthlyTextRequest"
      },
      "SunSignWeeklyTextRequest": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "short",
              "paragraph",
              "bullets",
              "structured",
              "long"
            ],
            "title": "Format",
            "description": "Text output style",
            "default": "paragraph"
          },
          "emoji": {
            "type": "boolean",
            "title": "Emoji",
            "description": "Include emoji markers in the header",
            "default": true
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign name or abbreviation"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "description": "Astrological tradition to use",
            "default": "universal"
          },
          "minimum_strength": {
            "type": "number",
            "maximum": 5,
            "minimum": 0,
            "title": "Minimum Strength",
            "description": "Minimum aspect strength included in responses",
            "default": 0
          },
          "date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date",
            "description": "Reference date (defaults to current week)"
          }
        },
        "type": "object",
        "required": [
          "sign"
        ],
        "title": "SunSignWeeklyTextRequest"
      },
      "SunSignYearlyTextRequest": {
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "short",
              "paragraph",
              "bullets",
              "structured",
              "long"
            ],
            "title": "Format",
            "description": "Text output style",
            "default": "paragraph"
          },
          "emoji": {
            "type": "boolean",
            "title": "Emoji",
            "description": "Include emoji markers in the header",
            "default": true
          },
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "Zodiac sign name or abbreviation"
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "fr",
              "pt",
              "it",
              "zh",
              "es",
              "ru",
              "tr",
              "de",
              "hi",
              "uk",
              "ar",
              "en-US",
              "en-GB",
              "en-ARCHAIC",
              "pt-BR",
              "pt-PT",
              "es-MX",
              "es-ES",
              "fr-FR",
              "fr-CA",
              "zh-CN",
              "zh-TW"
            ],
            "title": "Language",
            "description": "Response language",
            "default": "en"
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "event_oriented",
              "classical"
            ],
            "title": "Tradition",
            "description": "Astrological tradition to use",
            "default": "universal"
          },
          "minimum_strength": {
            "type": "number",
            "maximum": 5,
            "minimum": 0,
            "title": "Minimum Strength",
            "description": "Minimum aspect strength included in responses",
            "default": 0
          },
          "year": {
            "type": "integer",
            "title": "Year"
          }
        },
        "type": "object",
        "required": [
          "sign"
        ],
        "title": "SunSignYearlyTextRequest"
      },
      "SupportedFeaturesResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "features": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "title": "Features",
            "description": "Available features"
          },
          "limitations": {
            "additionalProperties": true,
            "type": "object",
            "title": "Limitations",
            "description": "System limitations"
          },
          "version_info": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Version Info",
            "description": "Version information"
          }
        },
        "type": "object",
        "required": [
          "features",
          "limitations",
          "version_info"
        ],
        "title": "SupportedFeaturesResponse",
        "description": "Response for supported features"
      },
      "SynastryChartRenderRequest": {
        "properties": {
          "subject1": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "subject2": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "render_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RenderOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "SynastryChartRenderRequest",
        "description": "Request for rendering synastry chart in multiple formats (SVG, PNG, JPG, WebP, PDF)"
      },
      "SynastryChartRequest": {
        "properties": {
          "subject1": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "subject2": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "SynastryChartRequest"
      },
      "SynastryChartResponse": {
        "properties": {
          "subject_data": {
            "$ref": "#/components/schemas/SynastryData"
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data representing the aspects BETWEEN the two subjects."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "chart_data"
        ],
        "title": "SynastryChartResponse"
      },
      "SynastryChartSVGRequest": {
        "properties": {
          "subject1": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "subject2": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "svg_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SVGOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "SynastryChartSVGRequest"
      },
      "SynastryData": {
        "properties": {
          "subject1": {
            "title": "Subject1",
            "description": "Detailed raw data for the first subject."
          },
          "subject2": {
            "title": "Subject2",
            "description": "Detailed raw data for the second subject."
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "SynastryData"
      },
      "SynastryReportRequest": {
        "properties": {
          "subject1": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "subject2": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "fixed_stars": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FixedStarsConfig"
              },
              {
                "type": "null"
              }
            ],
            "description": "🌟 Fixed stars configuration for the report."
          }
        },
        "type": "object",
        "required": [
          "subject1",
          "subject2"
        ],
        "title": "SynastryReportRequest"
      },
      "TarotCard": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Card identifier (e.g., 'major_04', 'wands_03')"
          },
          "name": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Name",
            "description": "Card name in multiple languages"
          },
          "arcana": {
            "type": "string",
            "enum": [
              "major",
              "minor"
            ],
            "title": "Arcana",
            "description": "Major or Minor Arcana"
          },
          "number": {
            "type": "integer",
            "title": "Number",
            "description": "Card number"
          },
          "suit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suit",
            "description": "Suit for Minor Arcana"
          },
          "element": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Element",
            "description": "Elemental correspondence"
          },
          "astrology": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Astrology",
            "description": "Astrological correspondences"
          },
          "keywords": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "title": "Keywords",
            "description": "Keywords for upright/reversed"
          },
          "life_areas": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Life Areas",
            "description": "Associated life areas"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "arcana",
          "number",
          "keywords",
          "life_areas"
        ],
        "title": "TarotCard",
        "description": "Single tarot card data"
      },
      "TarotGlossaryResponse": {
        "properties": {
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Items",
            "description": "Glossary items"
          },
          "total": {
            "type": "integer",
            "title": "Total",
            "description": "Total items"
          }
        },
        "type": "object",
        "required": [
          "items",
          "total"
        ],
        "title": "TarotGlossaryResponse",
        "description": "Response for tarot glossary endpoints"
      },
      "TarotReportRequest": {
        "properties": {
          "spread_type": {
            "type": "string",
            "enum": [
              "single",
              "three_card",
              "celtic_cross",
              "zodiac_wheel",
              "synastry",
              "houses",
              "custom"
            ],
            "title": "Spread Type",
            "description": "Type of tarot spread",
            "default": "three_card"
          },
          "life_area": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Life Area",
            "description": "Life area focus (from app/data/life_areas.py)"
          },
          "birth_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Birth data for astrological integration"
          },
          "partner_birth_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Partner data for synastry reports"
          },
          "use_reversals": {
            "type": "boolean",
            "title": "Use Reversals",
            "description": "Include reversed card meanings",
            "default": true
          },
          "tradition": {
            "type": "string",
            "enum": [
              "universal",
              "psychological",
              "classical",
              "hermetic"
            ],
            "title": "Tradition",
            "description": "Interpretation tradition",
            "default": "universal"
          },
          "include_dignities": {
            "type": "boolean",
            "title": "Include Dignities",
            "description": "Calculate elemental dignities",
            "default": false
          },
          "include_timing": {
            "type": "boolean",
            "title": "Include Timing",
            "description": "Include timing predictions",
            "default": false
          },
          "include_astro_context": {
            "type": "boolean",
            "title": "Include Astro Context",
            "description": "Include astrological context",
            "default": false
          },
          "include_birth_cards": {
            "type": "boolean",
            "title": "Include Birth Cards",
            "description": "Include birth card compatibility analysis",
            "default": false
          },
          "interpretation_depth": {
            "type": "string",
            "enum": [
              "keywords",
              "basic",
              "detailed",
              "professional"
            ],
            "title": "Interpretation Depth",
            "description": "Depth of interpretation",
            "default": "basic"
          },
          "language": {
            "type": "string",
            "title": "Language",
            "description": "Language code",
            "default": "en"
          }
        },
        "type": "object",
        "title": "TarotReportRequest",
        "description": "Request for tarot report generation"
      },
      "TarotReportResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "report_id": {
            "type": "string",
            "title": "Report Id",
            "description": "Unique report identifier"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp",
            "description": "Generation timestamp"
          },
          "spread": {
            "$ref": "#/components/schemas/SpreadInfo",
            "description": "Spread information"
          },
          "cards": {
            "items": {
              "$ref": "#/components/schemas/CardPosition"
            },
            "type": "array",
            "title": "Cards",
            "description": "Cards in positions"
          },
          "report": {
            "additionalProperties": true,
            "type": "object",
            "title": "Report",
            "description": "Report content"
          },
          "timing_guidance": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timing Guidance",
            "description": "Timing predictions"
          },
          "astrological_context": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Astrological Context",
            "description": "Astro context"
          },
          "elemental_dignities": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Elemental Dignities",
            "description": "Dignity analysis"
          },
          "synthesis": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Synthesis",
            "description": "Overall synthesis"
          },
          "suggestions": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggestions",
            "description": "Action suggestions"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Additional metadata"
          }
        },
        "type": "object",
        "required": [
          "success",
          "report_id",
          "timestamp",
          "spread",
          "cards",
          "report"
        ],
        "title": "TarotReportResponse",
        "description": "Response for tarot report"
      },
      "TimingAnalysisRequest": {
        "properties": {
          "cards": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Cards",
            "description": "Card IDs for timing analysis"
          },
          "birth_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Birth data for personalized timing"
          },
          "question_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Question Type",
            "description": "Type of question for context"
          }
        },
        "type": "object",
        "required": [
          "cards"
        ],
        "title": "TimingAnalysisRequest",
        "description": "Request for timing analysis"
      },
      "TimingAnalysisResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "timing_predictions": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TimingPrediction"
            },
            "type": "object",
            "title": "Timing Predictions",
            "description": "Timing for each card"
          },
          "summary": {
            "type": "string",
            "title": "Summary",
            "description": "Overall timing summary"
          }
        },
        "type": "object",
        "required": [
          "success",
          "timing_predictions",
          "summary"
        ],
        "title": "TimingAnalysisResponse",
        "description": "Response for timing analysis"
      },
      "TimingPrediction": {
        "properties": {
          "card_id": {
            "type": "string",
            "title": "Card Id",
            "description": "Card ID"
          },
          "dates": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dates",
            "description": "Specific date ranges"
          },
          "sign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign",
            "description": "Associated zodiac sign"
          },
          "season": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Season",
            "description": "Associated season"
          },
          "timing_type": {
            "type": "string",
            "title": "Timing Type",
            "description": "Type of timing (decan, seasonal, etc.)"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Timing description"
          }
        },
        "type": "object",
        "required": [
          "card_id",
          "timing_type",
          "description"
        ],
        "title": "TimingPrediction",
        "description": "Individual timing prediction"
      },
      "TimingWindows": {
        "properties": {
          "pre_eclipse": {
            "type": "string",
            "title": "Pre Eclipse",
            "description": "Pre-eclipse sensitization period"
          },
          "eclipse_day": {
            "type": "string",
            "title": "Eclipse Day",
            "description": "Eclipse day - maximum transformation potential"
          },
          "post_eclipse": {
            "type": "string",
            "title": "Post Eclipse",
            "description": "Post-eclipse integration period"
          }
        },
        "type": "object",
        "required": [
          "pre_eclipse",
          "eclipse_day",
          "post_eclipse"
        ],
        "title": "TimingWindows",
        "description": "Eclipse timing and activation periods"
      },
      "Tradition": {
        "type": "string",
        "enum": [
          "universal",
          "classical",
          "psychological",
          "event_oriented",
          "vedic",
          "chinese"
        ],
        "title": "Tradition",
        "description": "Astrological traditions"
      },
      "TraditionalAnalysisRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "Birth data for traditional analysis calculation",
            "examples": [
              {
                "birth_data": {
                  "day": 15,
                  "hour": 14,
                  "latitude": 51.50853,
                  "longitude": -0.12574,
                  "minute": 30,
                  "month": 5,
                  "second": 0,
                  "timezone": "Europe/London",
                  "year": 1990
                },
                "name": "Michael Brown"
              }
            ]
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Chart calculation options optimized for traditional analysis"
          },
          "orbs": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Orbs",
            "description": "Orb settings for aspects and traditional conditions",
            "examples": [
              {
                "major_aspects_deg": 2
              },
              {
                "major_aspects_deg": 1.5
              },
              {
                "major_aspects_deg": 3
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "TraditionalAnalysisRequest",
        "description": "Request for comprehensive traditional astrology analysis"
      },
      "TransitChartRenderRequest": {
        "properties": {
          "subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "Birth data for natal chart calculation. Use this instead of 'natal_subject'."
          },
          "transit_time": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransitTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "🆕 Transit time specification - use 'datetime' for specific moment or 'date_range' for period analysis."
          },
          "natal_subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "⚠️ LEGACY: Use 'subject' instead. Birth data for natal chart calculation.",
            "deprecated": true
          },
          "transit_datetime": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "⚠️ LEGACY: Use 'transit_time.datetime' instead. Specific datetime for transit calculation.",
            "deprecated": true
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "render_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RenderOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "TransitChartRenderRequest",
        "description": "Request for rendering transit chart in multiple formats (SVG, PNG, JPG, WebP, PDF)"
      },
      "TransitChartRequest": {
        "properties": {
          "subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "Birth data for natal chart calculation. Use this instead of 'natal_subject'."
          },
          "transit_time": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransitTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "🆕 Transit time specification - use 'datetime' for specific moment or 'date_range' for period analysis."
          },
          "natal_subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "⚠️ LEGACY: Use 'subject' instead. Birth data for natal chart calculation.",
            "deprecated": true
          },
          "transit_datetime": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "⚠️ LEGACY: Use 'transit_time.datetime' instead. Specific datetime for transit calculation.",
            "deprecated": true
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "TransitChartRequest",
        "description": "🆕 Unified transit chart request with backward-compatible legacy field support.\n\n**New format (recommended):**\n- `subject` - Birth data for natal chart\n- `transit_time` - Either specific datetime OR date range\n\n**Legacy format (still supported):**\n- `natal_subject` - Alias for `subject`\n- `transit_datetime` - Specific datetime (maps to transit_time.datetime)"
      },
      "TransitChartResponse": {
        "properties": {
          "subject_data": {
            "$ref": "#/components/schemas/TransitData"
          },
          "chart_data": {
            "$ref": "#/components/schemas/ChartData",
            "description": "Chart data representing the aspects between the natal subject and the transiting points."
          }
        },
        "type": "object",
        "required": [
          "subject_data",
          "chart_data"
        ],
        "title": "TransitChartResponse"
      },
      "TransitChartSVGRequest": {
        "properties": {
          "subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "Birth data for natal chart calculation. Use this instead of 'natal_subject'."
          },
          "transit_time": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransitTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "🆕 Transit time specification - use 'datetime' for specific moment or 'date_range' for period analysis."
          },
          "natal_subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject"
              },
              {
                "type": "null"
              }
            ],
            "description": "⚠️ LEGACY: Use 'subject' instead. Birth data for natal chart calculation.",
            "deprecated": true
          },
          "transit_datetime": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "⚠️ LEGACY: Use 'transit_time.datetime' instead. Specific datetime for transit calculation.",
            "deprecated": true
          },
          "options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChartOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "svg_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SVGOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "TransitChartSVGRequest"
      },
      "TransitData": {
        "properties": {
          "natal_subject": {
            "title": "Natal Subject",
            "description": "Detailed raw data for the natal subject."
          },
          "transit_subject": {
            "title": "Transit Subject",
            "description": "Detailed raw data for the transiting moment."
          }
        },
        "type": "object",
        "required": [
          "natal_subject",
          "transit_subject"
        ],
        "title": "TransitData"
      },
      "TransitEvent": {
        "properties": {
          "date": {
            "type": "string",
            "title": "Date",
            "description": "The date (UTC) when the transit is active or becomes exact."
          },
          "exact_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exact Time",
            "description": "The exact time (ISO format) when the aspect becomes perfect (0° orb). Only provided when precision timing is calculated."
          },
          "transiting_planet": {
            "type": "string",
            "title": "Transiting Planet",
            "description": "The planet that is moving (in transit)."
          },
          "aspect_type": {
            "type": "string",
            "title": "Aspect Type",
            "description": "The type of aspect (e.g., 'conjunction', 'trine')."
          },
          "stationed_planet": {
            "type": "string",
            "title": "Stationed Planet",
            "description": "The planet in the natal or solar return chart being aspected."
          },
          "orb": {
            "type": "number",
            "title": "Orb",
            "description": "The orb of the aspect in degrees."
          },
          "aspect_direction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aspect Direction",
            "description": "Whether the aspect is 'applying' (forming), 'separating' (dissolving), or 'exact'."
          },
          "transiting_speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transiting Speed",
            "description": "Speed of the transiting planet in degrees/day. Negative values indicate retrograde motion."
          },
          "transiting_house": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transiting House",
            "description": "The house number (1-12) that the transiting planet is currently in."
          },
          "natal_house": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Natal House",
            "description": "The natal house number (1-12) of the stationed planet."
          }
        },
        "type": "object",
        "required": [
          "date",
          "transiting_planet",
          "aspect_type",
          "stationed_planet",
          "orb"
        ],
        "title": "TransitEvent"
      },
      "TransitReportRequest": {
        "properties": {
          "birth_data": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "Birth data for transit calculations"
          },
          "life_area": {
            "type": "string",
            "title": "Life Area",
            "description": "Focus life area",
            "default": "general"
          },
          "include_timing": {
            "type": "boolean",
            "title": "Include Timing",
            "description": "Include timing predictions",
            "default": true
          },
          "interpretation_depth": {
            "type": "string",
            "enum": [
              "keywords",
              "basic",
              "detailed",
              "professional"
            ],
            "title": "Interpretation Depth",
            "description": "Depth of interpretation",
            "default": "detailed"
          },
          "language": {
            "type": "string",
            "title": "Language",
            "description": "Response language",
            "default": "en"
          }
        },
        "type": "object",
        "required": [
          "birth_data"
        ],
        "title": "TransitReportRequest",
        "description": "Request for transit-based tarot report"
      },
      "TransitReportResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "report_id": {
            "type": "string",
            "title": "Report Id",
            "description": "Unique report identifier"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp",
            "description": "Generation timestamp"
          },
          "transit_analysis": {
            "additionalProperties": true,
            "type": "object",
            "title": "Transit Analysis",
            "description": "Transit analysis results"
          },
          "transit_cards": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Transit Cards",
            "description": "Cards based on current transits"
          },
          "cards": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Cards",
            "description": "Cards for tests compatibility"
          },
          "current_transits": {
            "additionalProperties": true,
            "type": "object",
            "title": "Current Transits",
            "description": "Current astrological transits"
          },
          "timing_predictions": {
            "additionalProperties": true,
            "type": "object",
            "title": "Timing Predictions",
            "description": "Transit-based timing"
          },
          "life_area_focus": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Life Area Focus",
            "description": "Focus areas based on transits"
          },
          "house_focus": {
            "additionalProperties": true,
            "type": "object",
            "title": "House Focus",
            "description": "House focus analysis"
          },
          "synthesis": {
            "type": "string",
            "title": "Synthesis",
            "description": "Overall transit synthesis"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Additional metadata"
          }
        },
        "type": "object",
        "required": [
          "success",
          "report_id",
          "timestamp",
          "transit_analysis",
          "transit_cards",
          "cards",
          "current_transits",
          "timing_predictions",
          "life_area_focus",
          "house_focus",
          "synthesis"
        ],
        "title": "TransitReportResponse",
        "description": "Response for transit report"
      },
      "TransitTime": {
        "properties": {
          "datetime": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Specific date/time for transit calculation (for SVG charts or single-point analysis).",
            "examples": [
              {
                "city": "London",
                "country_code": "GB",
                "day": 15,
                "hour": 12,
                "minute": 0,
                "month": 3,
                "second": 0,
                "year": 2024
              }
            ]
          },
          "date_range": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateRange"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date range for transit event search (for transit reports and event lists).",
            "examples": [
              {
                "end_date": {
                  "day": 31,
                  "month": 3,
                  "year": 2024
                },
                "start_date": {
                  "day": 1,
                  "month": 3,
                  "year": 2024
                }
              }
            ]
          }
        },
        "type": "object",
        "title": "TransitTime",
        "description": "🆕 Unified transit time specification - accepts either a specific datetime OR a date range.\n\nUse `datetime` for single-point transit calculations (SVG charts, current transits).\nUse `date_range` for transit event searches over a period.\n\nIf both are provided, `datetime` takes precedence for single-point calculations,\nwhile `date_range` is used for event searches."
      },
      "TreeOfLifeRequest": {
        "properties": {
          "spread_type": {
            "type": "string",
            "const": "tree_of_life",
            "title": "Spread Type",
            "description": "Must be 'tree_of_life'"
          },
          "life_area": {
            "type": "string",
            "title": "Life Area",
            "description": "Focus life area",
            "default": "general"
          },
          "birth_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DateTimeLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "Birth data for timing analysis"
          },
          "include_timing": {
            "type": "boolean",
            "title": "Include Timing",
            "description": "Include timing analysis",
            "default": true
          },
          "include_dignities": {
            "type": "boolean",
            "title": "Include Dignities",
            "description": "Include elemental dignities",
            "default": true
          },
          "include_astro_context": {
            "type": "boolean",
            "title": "Include Astro Context",
            "description": "Include astrological context",
            "default": false
          },
          "interpretation_depth": {
            "type": "string",
            "enum": [
              "keywords",
              "basic",
              "detailed",
              "professional"
            ],
            "title": "Interpretation Depth",
            "description": "Depth of interpretation",
            "default": "detailed"
          },
          "language": {
            "type": "string",
            "title": "Language",
            "description": "Response language",
            "default": "en"
          }
        },
        "type": "object",
        "required": [
          "spread_type"
        ],
        "title": "TreeOfLifeRequest",
        "description": "Request for Tree of Life spread"
      },
      "TreeOfLifeResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "report_id": {
            "type": "string",
            "title": "Report Id",
            "description": "Unique report identifier"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp",
            "description": "Generation timestamp"
          },
          "spread": {
            "items": {
              "$ref": "#/components/schemas/SephirahPosition"
            },
            "type": "array",
            "title": "Spread",
            "description": "Tree of Life spread positions"
          },
          "cards": {
            "items": {
              "$ref": "#/components/schemas/SephirahPosition"
            },
            "type": "array",
            "title": "Cards",
            "description": "10 cards in Sephiroth positions"
          },
          "spiritual_journey": {
            "additionalProperties": true,
            "type": "object",
            "title": "Spiritual Journey",
            "description": "Spiritual journey analysis"
          },
          "pillar_balance": {
            "additionalProperties": true,
            "type": "object",
            "title": "Pillar Balance",
            "description": "Three pillars analysis with overall balance"
          },
          "timing_guidance": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timing Guidance",
            "description": "Overall timing guidance"
          },
          "major_arcana_paths": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Major Arcana Paths",
            "description": "Major Arcana path resonances"
          },
          "synthesis": {
            "type": "string",
            "title": "Synthesis",
            "description": "Overall spiritual synthesis"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Additional metadata"
          }
        },
        "type": "object",
        "required": [
          "success",
          "report_id",
          "timestamp",
          "spread",
          "cards",
          "spiritual_journey",
          "pillar_balance",
          "synthesis"
        ],
        "title": "TreeOfLifeResponse",
        "description": "Response for Tree of Life spread"
      },
      "TrinityAstrodyneData": {
        "properties": {
          "power": {
            "type": "number",
            "title": "Power",
            "description": "Total power"
          },
          "harmony": {
            "type": "number",
            "title": "Harmony",
            "description": "Total harmony"
          },
          "percentage": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percentage",
            "description": "Percentage of total"
          }
        },
        "type": "object",
        "required": [
          "power",
          "harmony"
        ],
        "title": "TrinityAstrodyneData",
        "description": "Astrodyne data for a trinity (Church of Light house grouping)"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "VisualOptions": {
        "properties": {
          "width": {
            "type": "integer",
            "maximum": 2400,
            "minimum": 400,
            "title": "Width",
            "description": "SVG width in pixels",
            "default": 1200
          },
          "height": {
            "type": "integer",
            "maximum": 1200,
            "minimum": 200,
            "title": "Height",
            "description": "SVG height in pixels",
            "default": 600
          },
          "theme": {
            "type": "string",
            "enum": [
              "classic",
              "modern",
              "dark",
              "minimal",
              "vintage"
            ],
            "title": "Theme",
            "description": "Visual theme for the map",
            "default": "modern"
          },
          "show_countries": {
            "type": "boolean",
            "title": "Show Countries",
            "description": "Show country boundaries",
            "default": true
          },
          "show_cities": {
            "type": "boolean",
            "title": "Show Cities",
            "description": "Show major cities",
            "default": true
          },
          "show_grid": {
            "type": "boolean",
            "title": "Show Grid",
            "description": "Show coordinate grid",
            "default": true
          },
          "show_legend": {
            "type": "boolean",
            "title": "Show Legend",
            "description": "Show map legends (both top and bottom)",
            "default": true
          },
          "show_top_legend": {
            "type": "boolean",
            "title": "Show Top Legend",
            "description": "Show top legend (planetary lines)",
            "default": true
          },
          "show_bottom_legend": {
            "type": "boolean",
            "title": "Show Bottom Legend",
            "description": "Show bottom legend (line types)",
            "default": true
          },
          "line_width": {
            "type": "number",
            "maximum": 5,
            "minimum": 0.5,
            "title": "Line Width",
            "description": "Width of planetary lines",
            "default": 2.5
          },
          "city_min_population": {
            "type": "integer",
            "maximum": 10000000,
            "minimum": 100000,
            "title": "City Min Population",
            "description": "Minimum city population to display",
            "default": 750000
          },
          "city_search_radius_km": {
            "type": "number",
            "maximum": 200,
            "minimum": 10,
            "title": "City Search Radius Km",
            "description": "Maximum distance in kilometers from lines to search for cities",
            "default": 40
          },
          "highlight_power_zones": {
            "type": "boolean",
            "title": "Highlight Power Zones",
            "description": "Highlight line intersections",
            "default": true
          },
          "show_cities_in_power_zones": {
            "type": "boolean",
            "title": "Show Cities In Power Zones",
            "description": "Show major cities located within power zones (line intersections)",
            "default": true
          },
          "line_label_mode": {
            "type": "string",
            "enum": [
              "none",
              "minimal",
              "all"
            ],
            "title": "Line Label Mode",
            "description": "Line label display mode: 'none' = no labels, 'minimal' = only at map edges, 'all' = scattered along lines",
            "default": "minimal"
          },
          "line_label_position": {
            "type": "string",
            "enum": [
              "scattered",
              "edges"
            ],
            "title": "Line Label Position",
            "description": "Label positioning: 'scattered' = distributed along lines, 'edges' = aligned at top/bottom edges",
            "default": "edges"
          },
          "max_power_zones": {
            "type": "integer",
            "maximum": 100,
            "minimum": 0,
            "title": "Max Power Zones",
            "description": "Maximum number of power zones to display (0 to disable). Shows top N strongest zones.",
            "default": 50
          },
          "min_power_zone_strength": {
            "type": "number",
            "maximum": 1,
            "minimum": 0,
            "title": "Min Power Zone Strength",
            "description": "Minimum strength threshold for power zones (0.0-1.0). Default 0.1 shows all significant intersections.",
            "default": 0.1
          },
          "planet_emoji_count": {
            "type": "integer",
            "maximum": 5,
            "minimum": 0,
            "title": "Planet Emoji Count",
            "description": "Number of life area emojis to show for each planet (0=none, 1=traditional primary, 2+=multiple based on strength_weight)",
            "default": 1,
            "examples": [
              0,
              1,
              2,
              3
            ]
          },
          "birth_location_label": {
            "type": "boolean",
            "title": "Birth Location Label",
            "description": "Show label for birth location on map",
            "default": true
          },
          "legend_position": {
            "type": "string",
            "enum": [
              "distributed",
              "right",
              "bottom"
            ],
            "title": "Legend Position",
            "description": "Position of map legend",
            "default": "distributed"
          },
          "city_label_style": {
            "type": "string",
            "enum": [
              "emoji",
              "text",
              "both"
            ],
            "title": "City Label Style",
            "description": "Style of city labels on map",
            "default": "emoji"
          },
          "line_label_style": {
            "type": "string",
            "enum": [
              "inline",
              "legend",
              "both"
            ],
            "title": "Line Label Style",
            "description": "Style of line labels on map",
            "default": "inline"
          },
          "color_scheme": {
            "type": "string",
            "enum": [
              "planetary",
              "monochrome",
              "custom"
            ],
            "title": "Color Scheme",
            "description": "Color scheme for planetary lines",
            "default": "planetary"
          },
          "interpretation_icons": {
            "type": "string",
            "enum": [
              "none",
              "above",
              "below",
              "inside"
            ],
            "title": "Interpretation Icons",
            "description": "Life area icons on power zones: 'none' = disabled, 'above/below' = position relative to zone (default: below), 'inside' = centered on zone",
            "default": "below"
          },
          "interpretation_tooltips": {
            "type": "string",
            "enum": [
              "none",
              "brief",
              "detailed"
            ],
            "title": "Interpretation Tooltips",
            "description": "Tooltip detail level: 'none' = disabled (default), 'brief' = short meaning, 'detailed' = full interpretation",
            "default": "none"
          },
          "interpretation_cards": {
            "type": "string",
            "enum": [
              "none",
              "top3",
              "top5",
              "auto"
            ],
            "title": "Interpretation Cards",
            "description": "Info cards for strong zones: 'none' = disabled (default), 'top3/top5' = show for N strongest zones, 'auto' = based on available space",
            "default": "none"
          },
          "interpretation_density": {
            "type": "string",
            "enum": [
              "sparse",
              "auto",
              "dense"
            ],
            "title": "Interpretation Density",
            "description": "Collision handling: 'sparse' = only if no overlap (default), 'auto' = smart fallback, 'dense' = show all with grouping",
            "default": "sparse"
          },
          "interpretation_focus": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "career",
                  "love",
                  "health",
                  "wealth",
                  "spirituality",
                  "creativity",
                  "home",
                  "communication"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Interpretation Focus",
            "description": "Focus on specific life area - highlights relevant lines and zones"
          },
          "language": {
            "type": "string",
            "title": "Language",
            "description": "Language for UI and interpretation texts (legend, labels, tooltips)",
            "default": "en",
            "examples": [
              "en",
              "ru",
              "de",
              "fr",
              "es",
              "ar",
              "hi",
              "zh"
            ]
          },
          "interpretation_colored_zones": {
            "type": "boolean",
            "title": "Interpretation Colored Zones",
            "description": "Color power zones by primary life area: love=red, career=gold, wealth=green, etc.",
            "default": true
          },
          "show_city_life_area_icons": {
            "type": "boolean",
            "title": "Show City Life Area Icons",
            "description": "Show life area icons next to city names (colored by life area theme)",
            "default": true
          }
        },
        "type": "object",
        "title": "VisualOptions",
        "description": "Visual styling options for SVG maps"
      },
      "VoidOfCourseRequest": {
        "properties": {
          "datetime_location": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "Date, time, and location for calculation"
          },
          "days_ahead": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 90,
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Days Ahead",
            "description": "Number of days to look ahead for VOC periods",
            "default": 30
          },
          "use_modern_planets": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Use Modern Planets",
            "description": "Include outer planets (Uranus, Neptune, Pluto)",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "datetime_location"
        ],
        "title": "VoidOfCourseRequest",
        "description": "Request for void-of-course calculation"
      },
      "ZodiacPosition": {
        "properties": {
          "sign": {
            "type": "string",
            "title": "Sign",
            "description": "3-letter zodiac sign abbreviation (Ari, Tau, Gem, etc.)",
            "examples": [
              "Ari",
              "Tau",
              "Leo"
            ]
          },
          "degree": {
            "type": "integer",
            "title": "Degree",
            "description": "Degree within the sign (0-29)",
            "examples": [
              19,
              5,
              23
            ]
          },
          "minute": {
            "type": "integer",
            "title": "Minute",
            "description": "Minute within the degree (0-59)",
            "examples": [
              24,
              41,
              15
            ]
          }
        },
        "type": "object",
        "required": [
          "sign",
          "degree",
          "minute"
        ],
        "title": "ZodiacPosition",
        "description": "Zodiac position with sign, degree, and minute"
      },
      "app__api__v3__schemas__common__Subject": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Name of the person or event. NOT required - you can use anonymous data like 'Person A', 'Client', or any placeholder. Only used for report titles and aspect descriptions. ⚠️ We NEVER store or log names - all data is processed in memory only.",
            "default": "Subject",
            "examples": [
              "John Smith",
              "Emma Johnson",
              "Person A",
              "Client",
              "Anonymous"
            ]
          },
          "birth_data": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "The date, time, and location data for this subject."
          }
        },
        "type": "object",
        "required": [
          "birth_data"
        ],
        "title": "Subject"
      },
      "app__api__v3__schemas__requests__NatalReportRequest": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "The person or event for whom the report is generated."
          },
          "tradition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tradition",
            "description": "⚠️ LEGACY: The astrological tradition to use for the report. Use report_options instead."
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language",
            "description": "⚠️ LEGACY: The language for the report interpretations. Use report_options instead."
          },
          "report_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportOptions"
              },
              {
                "type": "null"
              }
            ],
            "description": "Report generation options including tradition and language (recommended)."
          },
          "fixed_stars": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FixedStarsConfig"
              },
              {
                "type": "null"
              }
            ],
            "description": "🌟 Fixed stars configuration for the report."
          }
        },
        "type": "object",
        "required": [
          "subject"
        ],
        "title": "NatalReportRequest"
      },
      "app__api__v3__schemas__responses__NatalReportResponse": {
        "properties": {
          "subject": {
            "$ref": "#/components/schemas/app__api__v3__schemas__common__Subject",
            "description": "The subject whose report this is."
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/Interpretation"
            },
            "type": "array",
            "title": "Interpretations",
            "description": "A list of interpretations for the chart."
          }
        },
        "type": "object",
        "required": [
          "subject",
          "interpretations"
        ],
        "title": "NatalReportResponse",
        "description": "The response for a natal chart report."
      },
      "app__api__v3__schemas__responses__SynastryReportResponse": {
        "properties": {
          "report_title": {
            "type": "string",
            "title": "Report Title",
            "description": "Title of the synastry report."
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/ReportSection"
            },
            "type": "array",
            "title": "Sections"
          }
        },
        "type": "object",
        "required": [
          "report_title",
          "sections"
        ],
        "title": "SynastryReportResponse"
      },
      "app__api__v3__schemas__standard__Subject": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name",
            "description": "Subject's name",
            "default": "Anonymous"
          },
          "birth_data": {
            "$ref": "#/components/schemas/BirthData",
            "description": "Subject's birth data"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email",
            "description": "Subject's email (for reports)"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes",
            "description": "Additional notes about subject"
          }
        },
        "type": "object",
        "required": [
          "birth_data"
        ],
        "title": "Subject",
        "description": "Standard subject model for a person/entity",
        "example": {
          "birth_data": {
            "city": "London",
            "country_code": "GB",
            "day": 11,
            "hour": 18,
            "minute": 15,
            "month": 5,
            "year": 1985
          },
          "name": "John Doe"
        }
      },
      "app__api__v3__schemas__tarot_models__NatalReportRequest": {
        "properties": {
          "birth_data": {
            "$ref": "#/components/schemas/DateTimeLocation",
            "description": "Birth data for natal chart"
          },
          "life_area": {
            "type": "string",
            "title": "Life Area",
            "description": "Focus life area",
            "default": "general"
          },
          "include_timing": {
            "type": "boolean",
            "title": "Include Timing",
            "description": "Include timing predictions",
            "default": true
          },
          "interpretation_depth": {
            "type": "string",
            "enum": [
              "keywords",
              "basic",
              "detailed",
              "professional"
            ],
            "title": "Interpretation Depth",
            "description": "Depth of interpretation",
            "default": "detailed"
          },
          "language": {
            "type": "string",
            "title": "Language",
            "description": "Response language",
            "default": "en"
          }
        },
        "type": "object",
        "required": [
          "birth_data"
        ],
        "title": "NatalReportRequest",
        "description": "Request for natal chart-based tarot report"
      },
      "app__api__v3__schemas__tarot_models__NatalReportResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "report_id": {
            "type": "string",
            "title": "Report Id",
            "description": "Unique report identifier"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp",
            "description": "Generation timestamp"
          },
          "natal_analysis": {
            "items": {
              "$ref": "#/components/schemas/HousePosition"
            },
            "type": "array",
            "title": "Natal Analysis",
            "description": "Natal chart analysis"
          },
          "house_cards": {
            "items": {
              "$ref": "#/components/schemas/HousePosition"
            },
            "type": "array",
            "title": "House Cards",
            "description": "12 cards for houses"
          },
          "cards": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Cards",
            "description": "Cards for test compatibility"
          },
          "angular_house_emphasis": {
            "additionalProperties": true,
            "type": "object",
            "title": "Angular House Emphasis",
            "description": "Angular houses emphasis"
          },
          "birth_chart_integration": {
            "additionalProperties": true,
            "type": "object",
            "title": "Birth Chart Integration",
            "description": "Integration with birth chart"
          },
          "birth_chart_context": {
            "additionalProperties": true,
            "type": "object",
            "title": "Birth Chart Context",
            "description": "Birth chart context for tests"
          },
          "life_themes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Life Themes",
            "description": "Major life themes from chart"
          },
          "synthesis": {
            "type": "string",
            "title": "Synthesis",
            "description": "Overall natal synthesis"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Additional metadata"
          }
        },
        "type": "object",
        "required": [
          "success",
          "report_id",
          "timestamp",
          "natal_analysis",
          "house_cards",
          "cards",
          "angular_house_emphasis",
          "birth_chart_integration",
          "birth_chart_context",
          "life_themes",
          "synthesis"
        ],
        "title": "NatalReportResponse",
        "description": "Response for natal report"
      },
      "app__api__v3__schemas__tarot_models__SynastryReportResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Request success status"
          },
          "compatibility_score": {
            "type": "number",
            "title": "Compatibility Score",
            "description": "Overall compatibility score (0-100)"
          },
          "life_areas_analysis": {
            "additionalProperties": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "object",
            "title": "Life Areas Analysis",
            "description": "Analysis by life area"
          },
          "birth_cards_analysis": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birth Cards Analysis",
            "description": "Birth card compatibility"
          },
          "cards": {
            "items": {
              "$ref": "#/components/schemas/CardPosition"
            },
            "type": "array",
            "title": "Cards",
            "description": "Cards drawn for the reading"
          },
          "synthesis": {
            "type": "string",
            "title": "Synthesis",
            "description": "Overall relationship synthesis"
          },
          "challenges": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Challenges",
            "description": "Potential relationship challenges"
          },
          "strengths": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Strengths",
            "description": "Relationship strengths"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Additional metadata"
          }
        },
        "type": "object",
        "required": [
          "success",
          "compatibility_score",
          "life_areas_analysis",
          "cards",
          "synthesis",
          "challenges",
          "strengths"
        ],
        "title": "SynastryReportResponse",
        "description": "Response for synastry (compatibility) report"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.astrology-api.io",
      "description": "Production API"
    }
  ]
}