{
 "openapi": "3.1.0",
 "jsonSchemaDialect": "https://spec.openapis.org/oas/3.1/dialect/base",
 "info": {
  "title": "Divine Nakshatra API",
  "version": "1.0.0",
  "summary": "The Vedic sky's days as free static JSON: Panchang, events, ephemeris, Milan.",
  "description": "Free to call, no key, no limit set by us; every file is static and served from the edge. Free for everyone: no fee, no key, no sign-up, no advertising, and nothing asked in return, not money, not donations, not recognition. Offered in service of भगवान् वासुदेव श्रीकृष्ण (Bhagavan Vasudeva Shri Krishna).\n\nEvery number is 1-based as almanacs count: tithi 1-30 (15 Purnima, 30 Amavasya), Nakshatra 1-27, yoga 1-27, karana 1-60 (the half-tithis of the month), rashi 1-12 from Mesha, masa 1-12 from Chaitra (amanta), vara 1-7 from Ravivara.\n\nSidereal longitudes in the app's frame: the J2000 star frame less Lahiri's constant (IAE 1956), the frame of the sky the app draws. The Sun, the Moon and the planets from the app's astronomy (astronomy-engine, VSOP87 and the Moon's series); Rahu as the mean node.\n\nCalling these addresses and using what they return in your own work, for yourself or the people you serve, is free. Free is not copyable: the files, the engine that makes them and this site belong to Divyanshu Singh Chouhan. Without his written permission no one may copy or mirror them in bulk, host or sell them, present them as their own, or use them to train or evaluate a machine-learning system (the licence of divinenakshatra.com).",
  "termsOfService": "https://api.divinenakshatra.com/#rights",
  "contact": {
   "name": "Divyanshu Singh Chouhan",
   "url": "https://divinenakshatra.com/"
  },
  "license": {
   "name": "All rights reserved (free to call)",
   "url": "https://api.divinenakshatra.com/#rights"
  }
 },
 "servers": [
  {
   "url": "https://api.divinenakshatra.com"
  }
 ],
 "externalDocs": {
  "description": "The app that shows the same sky",
  "url": "https://divinenakshatra.com/"
 },
 "paths": {
  "/v1/index.json": {
   "get": {
    "operationId": "getIndex",
    "summary": "What is here: each file, its fields, the names, the methods.",
    "parameters": [],
    "responses": {
     "200": {
      "description": "What is here: each file, its fields, the names, the methods.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "No file at this address (a year or a place outside what is listed)."
     }
    }
   }
  },
  "/v1/places.json": {
   "get": {
    "operationId": "getPlaces",
    "summary": "Every place.",
    "parameters": [],
    "responses": {
     "200": {
      "description": "Every place.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "type": "array",
         "items": {
          "$ref": "#/components/schemas/Place"
         }
        }
       }
      }
     },
     "404": {
      "description": "No file at this address (a year or a place outside what is listed)."
     }
    }
   }
  },
  "/v1/zones.json": {
   "get": {
    "operationId": "getZones",
    "summary": "Each zone's UTC offsets, 1800 to 2100.",
    "parameters": [],
    "responses": {
     "200": {
      "description": "Each zone's UTC offsets, 1800 to 2100.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Zones"
        }
       }
      }
     },
     "404": {
      "description": "No file at this address (a year or a place outside what is listed)."
     }
    }
   }
  },
  "/v1/nakshatras.json": {
   "get": {
    "operationId": "getNakshatras",
    "summary": "The 27 Nakshatras.",
    "parameters": [],
    "responses": {
     "200": {
      "description": "The 27 Nakshatras.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "type": "array",
         "items": {
          "$ref": "#/components/schemas/Nakshatra"
         },
         "minItems": 27,
         "maxItems": 27
        }
       }
      }
     },
     "404": {
      "description": "No file at this address (a year or a place outside what is listed)."
     }
    }
   }
  },
  "/v1/milan.json": {
   "get": {
    "operationId": "getMilan",
    "summary": "Ashtakoota by the Moon, every part against every part.",
    "parameters": [],
    "responses": {
     "200": {
      "description": "Ashtakoota by the Moon, every part against every part.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Milan"
        }
       }
      }
     },
     "404": {
      "description": "No file at this address (a year or a place outside what is listed)."
     }
    }
   }
  },
  "/v1/events/{year}.json": {
   "get": {
    "operationId": "getEvents",
    "summary": "A year's events, in UTC.",
    "parameters": [
     {
      "name": "year",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer",
       "minimum": 1900,
       "maximum": 2100
      }
     }
    ],
    "responses": {
     "200": {
      "description": "A year's events, in UTC.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Events"
        }
       }
      }
     },
     "404": {
      "description": "No file at this address (a year or a place outside what is listed)."
     }
    }
   }
  },
  "/v1/ephemeris/{year}.json": {
   "get": {
    "operationId": "getEphemeris",
    "summary": "A year's ephemeris of the nine grahas.",
    "parameters": [
     {
      "name": "year",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer",
       "minimum": 1900,
       "maximum": 2100
      }
     }
    ],
    "responses": {
     "200": {
      "description": "A year's ephemeris of the nine grahas.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Ephemeris"
        }
       }
      }
     },
     "404": {
      "description": "No file at this address (a year or a place outside what is listed)."
     }
    }
   }
  },
  "/v1/panchang/{cc}/{place}/{year}.json": {
   "get": {
    "operationId": "getPanchang",
    "summary": "A place's days for a year, in its own clock.",
    "parameters": [
     {
      "name": "cc",
      "in": "path",
      "required": true,
      "description": "The place id's first part (lower-case country code), from places.json.",
      "schema": {
       "type": "string",
       "pattern": "^[a-z]{2}$"
      }
     },
     {
      "name": "place",
      "in": "path",
      "required": true,
      "description": "The place id's second part, from places.json.",
      "schema": {
       "type": "string",
       "pattern": "^[a-z0-9-]+$"
      }
     },
     {
      "name": "year",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer",
       "enum": [
        2026,
        2027
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "A place's days for a year, in its own clock.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Panchang"
        }
       }
      }
     },
     "404": {
      "description": "No file at this address (a year or a place outside what is listed)."
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "Place": {
    "type": "object",
    "required": [
     "id",
     "name",
     "country",
     "cc",
     "lat",
     "lon",
     "zone"
    ],
    "properties": {
     "id": {
      "type": "string",
      "description": "cc/name, the address of the place's files and of its page on divinenakshatra.com."
     },
     "name": {
      "type": "string"
     },
     "region": {
      "type": [
       "string",
       "null"
      ]
     },
     "country": {
      "type": "string"
     },
     "cc": {
      "type": "string",
      "description": "ISO 3166 country code."
     },
     "lat": {
      "type": "number"
     },
     "lon": {
      "type": "number",
      "description": "East positive."
     },
     "zone": {
      "type": "string",
      "description": "IANA time zone."
     }
    }
   },
   "Zones": {
    "type": "object",
    "properties": {
     "zones": {
      "type": "object",
      "additionalProperties": {
       "type": "array",
       "items": {
        "type": "array",
        "prefixItems": [
         {
          "type": "integer",
          "description": "UTC second since 1970."
         },
         {
          "type": "integer",
          "description": "Offset in seconds from then on."
         }
        ],
        "items": false
       }
      }
     }
    }
   },
   "Nakshatra": {
    "type": "object",
    "properties": {
     "number": {
      "type": "integer",
      "minimum": 1,
      "maximum": 27
     },
     "name": {
      "type": "string"
     },
     "sanskrit": {
      "type": "string"
     },
     "from_deg": {
      "type": "number"
     },
     "to_deg": {
      "type": "number"
     },
     "rashis": {
      "type": "array",
      "items": {
       "type": "integer",
       "minimum": 1,
       "maximum": 12
      }
     },
     "padas": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "number": {
         "type": "integer",
         "minimum": 1,
         "maximum": 4
        },
        "from_deg": {
         "type": "number"
        },
        "to_deg": {
         "type": "number"
        },
        "navamsha": {
         "type": "string"
        }
       }
      }
     },
     "yogatara": {
      "type": "object"
     },
     "vimshottari_lord": {
      "type": "string"
     },
     "devata": {
      "type": "string"
     },
     "gana": {
      "type": "string"
     },
     "nadi": {
      "type": "string"
     },
     "varna": {
      "type": "string"
     },
     "yoni": {
      "type": [
       "object",
       "null"
      ]
     },
     "rajju": {
      "type": "string"
     }
    }
   },
   "Milan": {
    "type": "object",
    "properties": {
     "parts": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "nakshatra": {
         "type": "integer",
         "minimum": 1,
         "maximum": 27
        },
        "rashi": {
         "type": "integer",
         "minimum": 1,
         "maximum": 12
        },
        "from_deg": {
         "type": "number"
        },
        "to_deg": {
         "type": "number"
        }
       }
      }
     },
     "kootas": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "key": {
         "type": "string"
        },
        "name": {
         "type": "string"
        },
        "max": {
         "type": "number"
        }
       }
      }
     },
     "max": {
      "type": "number"
     },
     "scores": {
      "type": "array",
      "description": "scores[bride part][groom part] = [total, the eight kootas in order, 1 where a koota rests on an open cell of the text]. A koota the source table leaves without a value is null, and then so is the total.",
      "items": {
       "type": "array",
       "items": {
        "type": "array",
        "prefixItems": [
         {
          "type": [
           "number",
           "null"
          ]
         },
         {
          "type": "array",
          "minItems": 8,
          "maxItems": 8,
          "items": {
           "type": [
            "number",
            "null"
           ]
          }
         },
         {
          "type": "integer",
          "minimum": 0,
          "maximum": 1
         }
        ],
        "items": false
       }
      }
     }
    }
   },
   "Events": {
    "type": "object",
    "properties": {
     "year": {
      "type": "integer"
     },
     "times": {
      "type": "string"
     },
     "tithi": {
      "type": "array",
      "description": "Each tithi's beginning.",
      "items": {
       "type": "array",
       "prefixItems": [
        {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        },
        {
         "type": "integer",
         "minimum": 1,
         "maximum": 30
        }
       ],
       "items": false,
       "minItems": 2
      }
     },
     "nakshatra": {
      "type": "array",
      "description": "Each Nakshatra's beginning.",
      "items": {
       "type": "array",
       "prefixItems": [
        {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        },
        {
         "type": "integer",
         "minimum": 1,
         "maximum": 27
        }
       ],
       "items": false,
       "minItems": 2
      }
     },
     "yoga": {
      "type": "array",
      "description": "Each yoga's beginning.",
      "items": {
       "type": "array",
       "prefixItems": [
        {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        },
        {
         "type": "integer",
         "minimum": 1,
         "maximum": 27
        }
       ],
       "items": false,
       "minItems": 2
      }
     },
     "karana": {
      "type": "array",
      "description": "Each karana's beginning.",
      "items": {
       "type": "array",
       "prefixItems": [
        {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        },
        {
         "type": "integer",
         "minimum": 1,
         "maximum": 60
        }
       ],
       "items": false,
       "minItems": 2
      }
     },
     "chandra_rashi": {
      "type": "array",
      "items": {
       "type": "array",
       "prefixItems": [
        {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        },
        {
         "type": "integer",
         "minimum": 1,
         "maximum": 12
        },
        {
         "type": "integer",
         "minimum": 0,
         "maximum": 1
        }
       ],
       "items": false
      }
     },
     "sankranti": {
      "type": "array",
      "items": {
       "type": "array",
       "prefixItems": [
        {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        },
        {
         "type": "integer",
         "minimum": 1,
         "maximum": 12
        },
        {
         "type": "integer",
         "minimum": 0,
         "maximum": 1
        }
       ],
       "items": false
      }
     },
     "gochara": {
      "type": "object",
      "additionalProperties": {
       "type": "array",
       "items": {
        "type": "array",
        "prefixItems": [
         {
          "type": "string",
          "format": "date-time",
          "description": "UTC, to the second."
         },
         {
          "type": "integer",
          "minimum": 1,
          "maximum": 12
         },
         {
          "type": "integer",
          "minimum": 0,
          "maximum": 1,
          "description": "1 when vakri."
         }
        ],
        "items": false
       }
      }
     },
     "masa": {
      "type": "array",
      "items": {
       "type": "array",
       "prefixItems": [
        {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        },
        {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        },
        {
         "type": "integer",
         "minimum": 1,
         "maximum": 12
        },
        {
         "type": "integer",
         "minimum": 0,
         "maximum": 1
        }
       ],
       "items": false
      }
     },
     "eclipses": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "kind": {
         "enum": [
          "lunar",
          "solar"
         ]
        },
        "type": {
         "type": "string"
        },
        "peak": {
         "type": "string",
         "format": "date-time",
         "description": "UTC, to the second."
        }
       }
      }
     }
    }
   },
   "Ephemeris": {
    "type": "object",
    "properties": {
     "year": {
      "type": "integer"
     },
     "start": {
      "type": "string",
      "format": "date-time",
      "description": "UTC, to the second."
     },
     "step_hours": {
      "type": "integer"
     },
     "grahas": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "lon": {
      "type": "array",
      "items": {
       "type": "array",
       "items": {
        "type": "number",
        "description": "Sidereal longitude, degrees."
       }
      }
     },
     "speed": {
      "type": "array",
      "items": {
       "type": "array",
       "items": {
        "type": "number",
        "description": "Degrees a day; negative is vakri."
       }
      }
     }
    }
   },
   "Panchang": {
    "type": "object",
    "properties": {
     "place": {
      "$ref": "#/components/schemas/Place"
     },
     "year": {
      "type": "integer"
     },
     "times": {
      "type": "string"
     },
     "fields": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "const": [
       "date",
       "vara",
       "sunrise",
       "sunset",
       "tithi",
       "nakshatra",
       "yoga",
       "karana",
       "chandra_rashi",
       "surya_rashi",
       "sankranti",
       "masa",
       "rahu_kalam",
       "yamaganda",
       "gulika",
       "abhijit",
       "brahma_muhurta"
      ]
     },
     "days": {
      "type": "array",
      "items": {
       "type": "array",
       "description": "One civil date at the place, the fields in this order: date, vara, sunrise, sunset, tithi, nakshatra, yoga, karana, chandra_rashi, surya_rashi, sankranti, masa, rahu_kalam, yamaganda, gulika, abhijit, brahma_muhurta. A date with no sunrise (inside a polar circle) has the date and nulls.",
       "prefixItems": [
        {
         "type": "string",
         "format": "date"
        },
        {
         "oneOf": [
          {
           "type": "integer",
           "minimum": 1,
           "maximum": 7,
           "description": "Vara, 1 Ravivara to 7 Shanivara."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "string",
           "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
           "description": "Sunrise: the upper limb with refraction."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "string",
           "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
           "description": "Sunset; null where the Sun does not set that day."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "minItems": 1,
           "description": "Tithi: the one running at sunrise, then each that begins before the next sunrise, as [number, end].",
           "items": {
            "type": "array",
            "prefixItems": [
             {
              "type": "integer",
              "minimum": 1,
              "maximum": 30
             },
             {
              "type": "string",
              "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
              "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
             }
            ],
            "items": false,
            "minItems": 2
           }
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "minItems": 1,
           "description": "Nakshatra: the one running at sunrise, then each that begins before the next sunrise, as [number, end].",
           "items": {
            "type": "array",
            "prefixItems": [
             {
              "type": "integer",
              "minimum": 1,
              "maximum": 27
             },
             {
              "type": "string",
              "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
              "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
             }
            ],
            "items": false,
            "minItems": 2
           }
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "minItems": 1,
           "description": "Yoga: the one running at sunrise, then each that begins before the next sunrise, as [number, end].",
           "items": {
            "type": "array",
            "prefixItems": [
             {
              "type": "integer",
              "minimum": 1,
              "maximum": 27
             },
             {
              "type": "string",
              "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
              "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
             }
            ],
            "items": false,
            "minItems": 2
           }
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "minItems": 1,
           "description": "Karana (the half-tithis of the month): the one running at sunrise, then each that begins before the next sunrise, as [number, end].",
           "items": {
            "type": "array",
            "prefixItems": [
             {
              "type": "integer",
              "minimum": 1,
              "maximum": 60
             },
             {
              "type": "string",
              "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
              "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
             }
            ],
            "items": false,
            "minItems": 2
           }
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "minItems": 1,
           "description": "The Moon's rashi: the one running at sunrise, then each that begins before the next sunrise, as [number, end].",
           "items": {
            "type": "array",
            "prefixItems": [
             {
              "type": "integer",
              "minimum": 1,
              "maximum": 12
             },
             {
              "type": "string",
              "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
              "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
             }
            ],
            "items": false,
            "minItems": 2
           }
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "integer",
           "minimum": 1,
           "maximum": 12,
           "description": "The Sun's rashi at sunrise."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "prefixItems": [
            {
             "type": "integer",
             "minimum": 1,
             "maximum": 12
            },
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            }
           ],
           "items": false,
           "minItems": 2,
           "description": "The sankranti: the rashi the Sun enters before the next sunrise, and when."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "prefixItems": [
            {
             "type": "integer",
             "minimum": 1,
             "maximum": 12,
             "description": "Masa, 1 Chaitra (amanta)."
            },
            {
             "type": "integer",
             "minimum": 0,
             "maximum": 1,
             "description": "1 when adhika."
            }
           ],
           "items": false,
           "minItems": 2
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "prefixItems": [
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            },
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            }
           ],
           "items": false,
           "minItems": 2,
           "description": "Rahu kalam."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "prefixItems": [
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            },
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            }
           ],
           "items": false,
           "minItems": 2,
           "description": "Yamaganda."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "prefixItems": [
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            },
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            }
           ],
           "items": false,
           "minItems": 2,
           "description": "Gulika."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "prefixItems": [
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            },
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            },
            {
             "type": "integer",
             "minimum": 0,
             "maximum": 1,
             "description": "1 on Budhavara, when the texts except it."
            }
           ],
           "items": false,
           "minItems": 3,
           "description": "Abhijit muhurta."
          },
          {
           "type": "null"
          }
         ]
        },
        {
         "oneOf": [
          {
           "type": "array",
           "prefixItems": [
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            },
            {
             "type": "string",
             "pattern": "^[0-9]{2,3}:[0-5][0-9]$",
             "description": "The place's clock, HH:MM from the row's midnight; an hour past 24 is a later day."
            }
           ],
           "items": false,
           "minItems": 2,
           "description": "Brahma muhurta: the fourteenth of fifteen parts of the night before the sunrise."
          },
          {
           "type": "null"
          }
         ]
        }
       ],
       "items": false,
       "minItems": 17
      }
     }
    }
   }
  }
 }
}