Skip to main content
Glama

Muslim Prayer Reminder MCP

Check Muslim Prayer Due Status

get_prayer_status

Checks if a Muslim obligatory prayer (Fajr, Dhuhr, Asr, Maghrib, Isha) is currently due for the user location and returns active reminder details. MANDATORY: The LLM must always explicitly disclose to the user which calculation authority method was used and why it was selected (see authorityNotice in response).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoSupported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored.
madhabNoOptional Asr shadow jurisprudence override (Shafi or Hanafi)
userIdNoNonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved.
latitudeNoOptional explicit latitude override
timezoneNoIANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup.
longitudeNoOptional explicit longitude override
calculationMethodNoOptional calculation authority override (auto-resolved from location by default)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
madhabYesActive Asr jurisprudence
prayerNoThe name of the currently due prayer if applicable
timezoneYesResolved IANA timezone
localDateYesCurrent local date in YYYY-MM-DD
nextPrayerYesThe name of the next upcoming prayer
reminderDueYesWhether a prayer is currently due for reminder
expiresAtUtcNoUTC expiration time of the active prayer window
reminderTextNoLocalized reminder message
startedAtUtcNoUTC start time of the active prayer window
authorityNoticeYesMandatory theological transparency notice; detailed provenance is at top level
nextPrayerAtUtcYesUTC timestamp of the next upcoming prayer
selectionReasonNoReason for authority selection
calculationMethodYesActive calculation authority
minuteAdjustmentsNoApplied minute adjustments
calculationDetailsNo
authorityDescriptionNoDescription of the calculation authority
nextPrayerCalculationNoAdjustment disclosure for the actual schedule of the next event, including tomorrow
highLatitudeAdjustmentNo
prayerWindowExpiresAtUtcNoEnd of the active prayer period; same boundary as legacy expiresAtUtc
reminderWindowExpiresAtUtcNoReminder eligibility end; exact_window is capped by the prayer period boundary. Fields appear when a reminder is emitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedInput schema / dependencies
      Added value: +{
      +  "latitude": [
      +    "longitude",
      +    "timezone"
      +  ],
      +  "longitude": [
      +    "latitude",
      +    "timezone"
      +  ]
      +}
    • removedInput schema / dependentRequired
      Removed value: -{
      -  "latitude": [
      -    "longitude",
      -    "timezone"
      -  ],
      -  "longitude": [
      -    "latitude",
      -    "timezone"
      -  ]
      -}
    • changedOutput schema / properties / authorityNotice / description
      Previous value: -"Mandatory theological transparency notice"New value: +"Mandatory theological transparency notice; detailed provenance is at top level"
    • removedOutput schema / properties / authorityNotice / properties / calculationDetails
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "appliedMinuteAdjustments": {
      -      "additionalProperties": {
      -        "type": "number"
      -      },
      -      "propertyNames": {
      -        "type": "string"
      -      },
      -      "type": "object"
      -    },
      -    "calendarAlignmentAdjusted": {
      -      "type": "boolean"
      -    },
      -    "customMinuteAdjustments": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "asr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "dhuhr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "fajr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "isha": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "maghrib": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "sunrise": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "expectedTimezone": {
      -      "description": "Timezone from city registry or approximate coordinate lookup",
      -      "type": "string"
      -    },
      -    "fallbackLocationUsed": {
      -      "type": "boolean"
      -    },
      -    "highLatitudeRuleSource": {
      -      "enum": [
      -        "stored_preference",
      -        "geographic_default"
      -      ],
      -      "type": "string"
      -    },
      -    "locationBasis": {
      -      "enum": [
      -        "explicit_coordinates",
      -        "explicit_city",
      -        "stored_fixed_coordinates",
      -        "stored_fixed_city",
      -        "host_coordinates",
      -        "host_city",
      -        "network_geolocation",
      -        "default_location"
      -      ],
      -      "type": "string"
      -    },
      -    "locationIsApproximate": {
      -      "type": "boolean"
      -    },
      -    "madhabSource": {
      -      "enum": [
      -        "explicit_override",
      -        "stored_preference",
      -        "geographic_default"
      -      ],
      -      "type": "string"
      -    },
      -    "methodMinuteAdjustments": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "asr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "dhuhr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "fajr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "isha": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "maghrib": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "sunrise": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "methodSource": {
      -      "enum": [
      -        "explicit_override",
      -        "stored_preference",
      -        "geographic_default"
      -      ],
      -      "type": "string"
      -    },
      -    "regionalMinuteAdjustments": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "asr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "dhuhr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "fajr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "isha": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "maghrib": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "sunrise": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "timezoneSource": {
      -      "description": "Source of the validated timezone or disclosed ocean/pole choice",
      -      "enum": [
      -        "explicit_override",
      -        "stored_preference",
      -        "city_default",
      -        "host_header"
      -      ],
      -      "type": "string"
      -    },
      -    "timezoneValidation": {
      -      "description": "Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure",
      -      "enum": [
      -        "coordinate_lookup",
      -        "nearby_boundary",
      -        "city_registry",
      -        "polar_choice",
      -        "ocean_choice"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / authorityNotice / properties / highLatitudeAdjustment
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "adjustedPrayers": {
      -      "items": {
      -        "enum": [
      -          "Fajr",
      -          "Sunrise",
      -          "Dhuhr",
      -          "Asr",
      -          "Maghrib",
      -          "Isha"
      -        ],
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "applied": {
      -      "type": "boolean"
      -    },
      -    "astronomicalLatitudeClamped": {
      -      "type": "boolean"
      -    },
      -    "effectiveLatitude": {
      -      "anyOf": [
      -        {
      -          "const": 48,
      -          "type": "number"
      -        },
      -        {
      -          "const": -48,
      -          "type": "number"
      -        }
      -      ],
      -      "description": "Substitute latitude only; never the user coordinate"
      -    },
      -    "explanation": {
      -      "type": "string"
      -    },
      -    "methodSpecificTwilightRule": {
      -      "const": "MoonsightingCommittee",
      -      "type": "string"
      -    },
      -    "rule": {
      -      "enum": [
      -        "MiddleOfTheNight",
      -        "SeventhOfTheNight",
      -        "TwilightAngle"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "applied",
      -    "rule",
      -    "astronomicalLatitudeClamped",
      -    "adjustedPrayers",
      -    "explanation"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / properties / calculationDetails / properties / timezoneValidation / description
      Previous value: -"Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure"New value: +"Validation basis; ocean locations require the matching nautical timezone or an adjacent coastal civil timezone; mathematical poles allow an explicit civil timezone with disclosure"
    • removedOutput schema / properties / nextPrayerCalculation / properties / authorityNotice / properties / calculationDetails
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "appliedMinuteAdjustments": {
      -      "additionalProperties": {
      -        "type": "number"
      -      },
      -      "propertyNames": {
      -        "type": "string"
      -      },
      -      "type": "object"
      -    },
      -    "calendarAlignmentAdjusted": {
      -      "type": "boolean"
      -    },
      -    "customMinuteAdjustments": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "asr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "dhuhr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "fajr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "isha": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "maghrib": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "sunrise": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "expectedTimezone": {
      -      "description": "Timezone from city registry or approximate coordinate lookup",
      -      "type": "string"
      -    },
      -    "fallbackLocationUsed": {
      -      "type": "boolean"
      -    },
      -    "highLatitudeRuleSource": {
      -      "enum": [
      -        "stored_preference",
      -        "geographic_default"
      -      ],
      -      "type": "string"
      -    },
      -    "locationBasis": {
      -      "enum": [
      -        "explicit_coordinates",
      -        "explicit_city",
      -        "stored_fixed_coordinates",
      -        "stored_fixed_city",
      -        "host_coordinates",
      -        "host_city",
      -        "network_geolocation",
      -        "default_location"
      -      ],
      -      "type": "string"
      -    },
      -    "locationIsApproximate": {
      -      "type": "boolean"
      -    },
      -    "madhabSource": {
      -      "enum": [
      -        "explicit_override",
      -        "stored_preference",
      -        "geographic_default"
      -      ],
      -      "type": "string"
      -    },
      -    "methodMinuteAdjustments": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "asr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "dhuhr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "fajr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "isha": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "maghrib": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "sunrise": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "methodSource": {
      -      "enum": [
      -        "explicit_override",
      -        "stored_preference",
      -        "geographic_default"
      -      ],
      -      "type": "string"
      -    },
      -    "regionalMinuteAdjustments": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "asr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "dhuhr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "fajr": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "isha": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "maghrib": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        },
      -        "sunrise": {
      -          "maximum": 60,
      -          "minimum": -60,
      -          "type": "integer"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "timezoneSource": {
      -      "description": "Source of the validated timezone or disclosed ocean/pole choice",
      -      "enum": [
      -        "explicit_override",
      -        "stored_preference",
      -        "city_default",
      -        "host_header"
      -      ],
      -      "type": "string"
      -    },
      -    "timezoneValidation": {
      -      "description": "Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure",
      -      "enum": [
      -        "coordinate_lookup",
      -        "nearby_boundary",
      -        "city_registry",
      -        "polar_choice",
      -        "ocean_choice"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / nextPrayerCalculation / properties / authorityNotice / properties / highLatitudeAdjustment
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "adjustedPrayers": {
      -      "items": {
      -        "enum": [
      -          "Fajr",
      -          "Sunrise",
      -          "Dhuhr",
      -          "Asr",
      -          "Maghrib",
      -          "Isha"
      -        ],
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "applied": {
      -      "type": "boolean"
      -    },
      -    "astronomicalLatitudeClamped": {
      -      "type": "boolean"
      -    },
      -    "effectiveLatitude": {
      -      "anyOf": [
      -        {
      -          "const": 48,
      -          "type": "number"
      -        },
      -        {
      -          "const": -48,
      -          "type": "number"
      -        }
      -      ],
      -      "description": "Substitute latitude only; never the user coordinate"
      -    },
      -    "explanation": {
      -      "type": "string"
      -    },
      -    "methodSpecificTwilightRule": {
      -      "const": "MoonsightingCommittee",
      -      "type": "string"
      -    },
      -    "rule": {
      -      "enum": [
      -        "MiddleOfTheNight",
      -        "SeventhOfTheNight",
      -        "TwilightAngle"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "applied",
      -    "rule",
      -    "astronomicalLatitudeClamped",
      -    "adjustedPrayers",
      -    "explanation"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / properties / nextPrayerCalculation / properties / calculationDetails / properties / timezoneValidation / description
      Previous value: -"Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure"New value: +"Validation basis; ocean locations require the matching nautical timezone or an adjacent coastal civil timezone; mathematical poles allow an explicit civil timezone with disclosure"
    • addedOutput schema / properties / nextPrayerCalculation / properties / usesCurrentCalculation
      Added value: +{
      +  "description": "If true, this next event uses the top-level calculationDetails, highLatitudeAdjustment and authorityNotice; duplicate fields are omitted. Otherwise its own distinct metadata is included.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / nextPrayerCalculation / required
      Previous value: -[
      -  "localDate"
      -]New value: +[
      +  "localDate",
      +  "usesCurrentCalculation"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "reminderDue",
      -  "localDate",
      -  "nextPrayer",
      -  "nextPrayerAtUtc",
      -  "timezone",
      -  "calculationMethod",
      -  "madhab"
      -]New value: +[
      +  "reminderDue",
      +  "localDate",
      +  "nextPrayer",
      +  "nextPrayerAtUtc",
      +  "timezone",
      +  "calculationMethod",
      +  "madhab",
      +  "authorityNotice"
      +]
  2. Changed16 schema fields changed
    • addedInput schema / allOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "city",
      +        "latitude"
      +      ]
      +    }
      +  },
      +  {
      +    "not": {
      +      "required": [
      +        "city",
      +        "longitude"
      +      ]
      +    }
      +  }
      +]
    • addedInput schema / dependentRequired
      Added value: +{
      +  "latitude": [
      +    "longitude",
      +    "timezone"
      +  ],
      +  "longitude": [
      +    "latitude",
      +    "timezone"
      +  ]
      +}
    • changedInput schema / properties / timezone / description
      Previous value: -"IANA timezone; required in the same request when latitude/longitude are supplied. Explicit overrides select the display timezone."New value: +"IANA timezone; required in the same request when latitude/longitude are supplied. Must agree with the city or be compatible with the coordinate timezone lookup."
    • addedInput schema / properties / userId / pattern
      Added value: +"\\S"
    • addedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / expectedTimezone
      Added value: +{
      +  "description": "Timezone from city registry or approximate coordinate lookup",
      +  "type": "string"
      +}
    • changedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / timezoneSource / description
      Previous value: -"Source of the display timezone; caller-selected overrides are not geographically validated."New value: +"Source of the validated timezone or disclosed ocean/pole choice"
    • addedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / timezoneValidation
      Added value: +{
      +  "description": "Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure",
      +  "enum": [
      +    "coordinate_lookup",
      +    "nearby_boundary",
      +    "city_registry",
      +    "polar_choice",
      +    "ocean_choice"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / calculationDetails / properties / expectedTimezone
      Added value: +{
      +  "description": "Timezone from city registry or approximate coordinate lookup",
      +  "type": "string"
      +}
    • changedOutput schema / properties / calculationDetails / properties / timezoneSource / description
      Previous value: -"Source of the display timezone; caller-selected overrides are not geographically validated."New value: +"Source of the validated timezone or disclosed ocean/pole choice"
    • addedOutput schema / properties / calculationDetails / properties / timezoneValidation
      Added value: +{
      +  "description": "Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure",
      +  "enum": [
      +    "coordinate_lookup",
      +    "nearby_boundary",
      +    "city_registry",
      +    "polar_choice",
      +    "ocean_choice"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / nextPrayerCalculation / properties / authorityNotice / properties / calculationDetails / properties / expectedTimezone
      Added value: +{
      +  "description": "Timezone from city registry or approximate coordinate lookup",
      +  "type": "string"
      +}
    • changedOutput schema / properties / nextPrayerCalculation / properties / authorityNotice / properties / calculationDetails / properties / timezoneSource / description
      Previous value: -"Source of the display timezone; caller-selected overrides are not geographically validated."New value: +"Source of the validated timezone or disclosed ocean/pole choice"
    • addedOutput schema / properties / nextPrayerCalculation / properties / authorityNotice / properties / calculationDetails / properties / timezoneValidation
      Added value: +{
      +  "description": "Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure",
      +  "enum": [
      +    "coordinate_lookup",
      +    "nearby_boundary",
      +    "city_registry",
      +    "polar_choice",
      +    "ocean_choice"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / nextPrayerCalculation / properties / calculationDetails / properties / expectedTimezone
      Added value: +{
      +  "description": "Timezone from city registry or approximate coordinate lookup",
      +  "type": "string"
      +}
    • changedOutput schema / properties / nextPrayerCalculation / properties / calculationDetails / properties / timezoneSource / description
      Previous value: -"Source of the display timezone; caller-selected overrides are not geographically validated."New value: +"Source of the validated timezone or disclosed ocean/pole choice"
    • addedOutput schema / properties / nextPrayerCalculation / properties / calculationDetails / properties / timezoneValidation
      Added value: +{
      +  "description": "Validation basis; ocean and mathematical-pole locations retain caller-selected civil timezone with explicit disclosure",
      +  "enum": [
      +    "coordinate_lookup",
      +    "nearby_boundary",
      +    "city_registry",
      +    "polar_choice",
      +    "ocean_choice"
      +  ],
      +  "type": "string"
      +}
  3. Changed10 schema fields changed
    • changedInput schema / properties / city / description
      Previous value: -"Supported predefined city. Supply city or coordinates with an IANA timezone; connector/IP geolocation is never used."New value: +"Supported cities: makkah, madinah, riyadh, cairo, gaza, jerusalem, alquds, ramallah, hebron, nablus, rafah, khanyunis, dubai, abudhabi, kuwait, doha, amman, istanbul, london, paris, newyork, toronto, jakarta, singapore, karachi, kualalumpur, tehran, sydney, tromso. Aliases: gazacity, nyc, kuwaitcity. Case, spaces and punctuation are ignored."
    • changedInput schema / properties / timezone / description
      Previous value: -"Optional IANA timezone override (e.g. Asia/Riyadh)"New value: +"IANA timezone; required in the same request when latitude/longitude are supplied. Explicit overrides select the display timezone."
    • changedInput schema / properties / userId / description
      Previous value: -"Optional unique user identifier to load stored preferences. If omitted, pure geographic auto-resolution is applied."New value: +"Nonblank user identifier; at most 256 UTF-8 bytes and 256 characters. Whitespace in nonblank identifiers is preserved."
    • addedInput schema / properties / userId / maxLength
      Added value: +256
    • addedOutput schema / properties / authorityNotice / properties / calculationDetails / properties / timezoneSource
      Added value: +{
      +  "description": "Source of the display timezone; caller-selected overrides are not geographically validated.",
      +  "enum": [
      +    "explicit_override",
      +    "stored_preference",
      +    "city_default",
      +    "host_header"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / calculationDetails / properties / timezoneSource
      Added value: +{
      +  "description": "Source of the display timezone; caller-selected overrides are not geographically validated.",
      +  "enum": [
      +    "explicit_override",
      +    "stored_preference",
      +    "city_default",
      +    "host_header"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / nextPrayerCalculation / properties / authorityNotice / properties / calculationDetails / properties / timezoneSource
      Added value: +{
      +  "description": "Source of the display timezone; caller-selected overrides are not geographically validated.",
      +  "enum": [
      +    "explicit_override",
      +    "stored_preference",
      +    "city_default",
      +    "host_header"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / nextPrayerCalculation / properties / calculationDetails / properties / timezoneSource
      Added value: +{
      +  "description": "Source of the display timezone; caller-selected overrides are not geographically validated.",
      +  "enum": [
      +    "explicit_override",
      +    "stored_preference",
      +    "city_default",
      +    "host_header"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / prayerWindowExpiresAtUtc
      Added value: +{
      +  "description": "End of the active prayer period; same boundary as legacy expiresAtUtc",
      +  "type": "string"
      +}
    • addedOutput schema / properties / reminderWindowExpiresAtUtc
      Added value: +{
      +  "description": "Reminder eligibility end; exact_window is capped by the prayer period boundary. Fields appear when a reminder is emitted.",
      +  "type": "string"
      +}
  4. Changed6 schema fields changed
    • addedInput schema / properties / city
      Added value: +{
      +  "description": "Supported predefined city. Supply city or coordinates with an IANA timezone; connector/IP geolocation is never used.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / authorityNotice / properties / calculationDetails
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "appliedMinuteAdjustments": {
      +      "additionalProperties": {
      +        "type": "number"
      +      },
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "calendarAlignmentAdjusted": {
      +      "type": "boolean"
      +    },
      +    "customMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "fallbackLocationUsed": {
      +      "type": "boolean"
      +    },
      +    "highLatitudeRuleSource": {
      +      "enum": [
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "locationBasis": {
      +      "enum": [
      +        "explicit_coordinates",
      +        "explicit_city",
      +        "stored_fixed_coordinates",
      +        "stored_fixed_city",
      +        "host_coordinates",
      +        "host_city",
      +        "network_geolocation",
      +        "default_location"
      +      ],
      +      "type": "string"
      +    },
      +    "locationIsApproximate": {
      +      "type": "boolean"
      +    },
      +    "madhabSource": {
      +      "enum": [
      +        "explicit_override",
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "methodMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "methodSource": {
      +      "enum": [
      +        "explicit_override",
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "regionalMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / authorityNotice / properties / highLatitudeAdjustment
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "adjustedPrayers": {
      +      "items": {
      +        "enum": [
      +          "Fajr",
      +          "Sunrise",
      +          "Dhuhr",
      +          "Asr",
      +          "Maghrib",
      +          "Isha"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "applied": {
      +      "type": "boolean"
      +    },
      +    "astronomicalLatitudeClamped": {
      +      "type": "boolean"
      +    },
      +    "effectiveLatitude": {
      +      "anyOf": [
      +        {
      +          "const": 48,
      +          "type": "number"
      +        },
      +        {
      +          "const": -48,
      +          "type": "number"
      +        }
      +      ],
      +      "description": "Substitute latitude only; never the user coordinate"
      +    },
      +    "explanation": {
      +      "type": "string"
      +    },
      +    "methodSpecificTwilightRule": {
      +      "const": "MoonsightingCommittee",
      +      "type": "string"
      +    },
      +    "rule": {
      +      "enum": [
      +        "MiddleOfTheNight",
      +        "SeventhOfTheNight",
      +        "TwilightAngle"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "applied",
      +    "rule",
      +    "astronomicalLatitudeClamped",
      +    "adjustedPrayers",
      +    "explanation"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / calculationDetails
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "appliedMinuteAdjustments": {
      +      "additionalProperties": {
      +        "type": "number"
      +      },
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "calendarAlignmentAdjusted": {
      +      "type": "boolean"
      +    },
      +    "customMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "fallbackLocationUsed": {
      +      "type": "boolean"
      +    },
      +    "highLatitudeRuleSource": {
      +      "enum": [
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "locationBasis": {
      +      "enum": [
      +        "explicit_coordinates",
      +        "explicit_city",
      +        "stored_fixed_coordinates",
      +        "stored_fixed_city",
      +        "host_coordinates",
      +        "host_city",
      +        "network_geolocation",
      +        "default_location"
      +      ],
      +      "type": "string"
      +    },
      +    "locationIsApproximate": {
      +      "type": "boolean"
      +    },
      +    "madhabSource": {
      +      "enum": [
      +        "explicit_override",
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "methodMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "methodSource": {
      +      "enum": [
      +        "explicit_override",
      +        "stored_preference",
      +        "geographic_default"
      +      ],
      +      "type": "string"
      +    },
      +    "regionalMinuteAdjustments": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "asr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "dhuhr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "fajr": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "isha": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "maghrib": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        },
      +        "sunrise": {
      +          "maximum": 60,
      +          "minimum": -60,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / highLatitudeAdjustment
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "adjustedPrayers": {
      +      "items": {
      +        "enum": [
      +          "Fajr",
      +          "Sunrise",
      +          "Dhuhr",
      +          "Asr",
      +          "Maghrib",
      +          "Isha"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "applied": {
      +      "type": "boolean"
      +    },
      +    "astronomicalLatitudeClamped": {
      +      "type": "boolean"
      +    },
      +    "effectiveLatitude": {
      +      "anyOf": [
      +        {
      +          "const": 48,
      +          "type": "number"
      +        },
      +        {
      +          "const": -48,
      +          "type": "number"
      +        }
      +      ],
      +      "description": "Substitute latitude only; never the user coordinate"
      +    },
      +    "explanation": {
      +      "type": "string"
      +    },
      +    "methodSpecificTwilightRule": {
      +      "const": "MoonsightingCommittee",
      +      "type": "string"
      +    },
      +    "rule": {
      +      "enum": [
      +        "MiddleOfTheNight",
      +        "SeventhOfTheNight",
      +        "TwilightAngle"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "applied",
      +    "rule",
      +    "astronomicalLatitudeClamped",
      +    "adjustedPrayers",
      +    "explanation"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / nextPrayerCalculation
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Adjustment disclosure for the actual schedule of the next event, including tomorrow",
      +  "properties": {
      +    "authorityNotice": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "authorityDescription": {
      +          "description": "Full descriptive name of the calculation authority",
      +          "type": "string"
      +        },
      +        "calculationDetails": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "appliedMinuteAdjustments": {
      +              "additionalProperties": {
      +                "type": "number"
      +              },
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "calendarAlignmentAdjusted": {
      +              "type": "boolean"
      +            },
      +            "customMinuteAdjustments": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "asr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "dhuhr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "fajr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "isha": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "maghrib": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "sunrise": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "fallbackLocationUsed": {
      +              "type": "boolean"
      +            },
      +            "highLatitudeRuleSource": {
      +              "enum": [
      +                "stored_preference",
      +                "geographic_default"
      +              ],
      +              "type": "string"
      +            },
      +            "locationBasis": {
      +              "enum": [
      +                "explicit_coordinates",
      +                "explicit_city",
      +                "stored_fixed_coordinates",
      +                "stored_fixed_city",
      +                "host_coordinates",
      +                "host_city",
      +                "network_geolocation",
      +                "default_location"
      +              ],
      +              "type": "string"
      +            },
      +            "locationIsApproximate": {
      +              "type": "boolean"
      +            },
      +            "madhabSource": {
      +              "enum": [
      +                "explicit_override",
      +                "stored_preference",
      +                "geographic_default"
      +              ],
      +              "type": "string"
      +            },
      +            "methodMinuteAdjustments": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "asr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "dhuhr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "fajr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "isha": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "maghrib": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "sunrise": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "methodSource": {
      +              "enum": [
      +                "explicit_override",
      +                "stored_preference",
      +                "geographic_default"
      +              ],
      +              "type": "string"
      +            },
      +            "regionalMinuteAdjustments": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "asr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "dhuhr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "fajr": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "isha": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "maghrib": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                },
      +                "sunrise": {
      +                  "maximum": 60,
      +                  "minimum": -60,
      +                  "type": "integer"
      +                }
      +              },
      +              "type": "object"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "highLatitudeAdjustment": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "adjustedPrayers": {
      +              "items": {
      +                "enum": [
      +                  "Fajr",
      +                  "Sunrise",
      +                  "Dhuhr",
      +                  "Asr",
      +                  "Maghrib",
      +                  "Isha"
      +                ],
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "applied": {
      +              "type": "boolean"
      +            },
      +            "astronomicalLatitudeClamped": {
      +              "type": "boolean"
      +            },
      +            "effectiveLatitude": {
      +              "anyOf": [
      +                {
      +                  "const": 48,
      +                  "type": "number"
      +                },
      +                {
      +                  "const": -48,
      +                  "type": "number"
      +                }
      +              ],
      +              "description": "Substitute latitude only; never the user coordinate"
      +            },
      +            "explanation": {
      +              "type": "string"
      +            },
      +            "methodSpecificTwilightRule": {
      +              "const": "MoonsightingCommittee",
      +              "type": "string"
      +            },
      +            "rule": {
      +              "enum": [
      +                "MiddleOfTheNight",
      +                "SeventhOfTheNight",
      +                "TwilightAngle"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "applied",
      +            "rule",
      +            "astronomicalLatitudeClamped",
      +            "adjustedPrayers",
      +            "explanation"
      +          ],
      +          "type": "object"
      +        },
      +        "madhab": {
      +          "description": "The Asr jurisprudence school",
      +          "enum": [
      +            "Shafi",
      +            "Hanafi"
      +          ],
      +          "type": "string"
      +        },
      +        "method": {
      +          "description": "The calculation authority method",
      +          "enum": [
      +            "UmmAlQura",
      +            "MuslimWorldLeague",
      +            "Egyptian",
      +            "Karachi",
      +            "NorthAmerica",
      +            "Dubai",
      +            "Qatar",
      +            "Kuwait",
      +            "MoonsightingCommittee",
      +            "Singapore",
      +            "Turkey",
      +            "Tehran"
      +          ],
      +          "type": "string"
      +        },
      +        "requiredDisplayInstruction": {
      +          "description": "Mandatory theological notice for AI presentation",
      +          "type": "string"
      +        },
      +        "selectionReason": {
      +          "description": "Rationale for selecting this authority",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "method",
      +        "madhab",
      +        "authorityDescription",
      +        "selectionReason",
      +        "requiredDisplayInstruction"
      +      ],
      +      "type": "object"
      +    },
      +    "calculationDetails": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "appliedMinuteAdjustments": {
      +          "additionalProperties": {
      +            "type": "number"
      +          },
      +          "propertyNames": {
      +            "type": "string"
      +          },
      +          "type": "object"
      +        },
      +        "calendarAlignmentAdjusted": {
      +          "type": "boolean"
      +        },
      +        "customMinuteAdjustments": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "asr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "dhuhr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "fajr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "isha": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "maghrib": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "sunrise": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "fallbackLocationUsed": {
      +          "type": "boolean"
      +        },
      +        "highLatitudeRuleSource": {
      +          "enum": [
      +            "stored_preference",
      +            "geographic_default"
      +          ],
      +          "type": "string"
      +        },
      +        "locationBasis": {
      +          "enum": [
      +            "explicit_coordinates",
      +            "explicit_city",
      +            "stored_fixed_coordinates",
      +            "stored_fixed_city",
      +            "host_coordinates",
      +            "host_city",
      +            "network_geolocation",
      +            "default_location"
      +          ],
      +          "type": "string"
      +        },
      +        "locationIsApproximate": {
      +          "type": "boolean"
      +        },
      +        "madhabSource": {
      +          "enum": [
      +            "explicit_override",
      +            "stored_preference",
      +            "geographic_default"
      +          ],
      +          "type": "string"
      +        },
      +        "methodMinuteAdjustments": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "asr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "dhuhr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "fajr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "isha": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "maghrib": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "sunrise": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "methodSource": {
      +          "enum": [
      +            "explicit_override",
      +            "stored_preference",
      +            "geographic_default"
      +          ],
      +          "type": "string"
      +        },
      +        "regionalMinuteAdjustments": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "asr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "dhuhr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "fajr": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "isha": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "maghrib": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            },
      +            "sunrise": {
      +              "maximum": 60,
      +              "minimum": -60,
      +              "type": "integer"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "highLatitudeAdjustment": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "adjustedPrayers": {
      +          "items": {
      +            "enum": [
      +              "Fajr",
      +              "Sunrise",
      +              "Dhuhr",
      +              "Asr",
      +              "Maghrib",
      +              "Isha"
      +            ],
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "applied": {
      +          "type": "boolean"
      +        },
      +        "astronomicalLatitudeClamped": {
      +          "type": "boolean"
      +        },
      +        "effectiveLatitude": {
      +          "anyOf": [
      +            {
      +              "const": 48,
      +              "type": "number"
      +            },
      +            {
      +              "const": -48,
      +              "type": "number"
      +            }
      +          ],
      +          "description": "Substitute latitude only; never the user coordinate"
      +        },
      +        "explanation": {
      +          "type": "string"
      +        },
      +        "methodSpecificTwilightRule": {
      +          "const": "MoonsightingCommittee",
      +          "type": "string"
      +        },
      +        "rule": {
      +          "enum": [
      +            "MiddleOfTheNight",
      +            "SeventhOfTheNight",
      +            "TwilightAngle"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "applied",
      +        "rule",
      +        "astronomicalLatitudeClamped",
      +        "adjustedPrayers",
      +        "explanation"
      +      ],
      +      "type": "object"
      +    },
      +    "localDate": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "localDate"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / userId / minLength
      Added value: +1
  6. Changed1 schema field changed
    • addedInput schema / properties / userId
      Added value: +{
      +  "description": "Optional unique user identifier to load stored preferences. If omitted, pure geographic auto-resolution is applied.",
      +  "type": "string"
      +}
  7. Changed4 schema fields changed
    • removedInput schema / properties / userId
      Removed value: -{
      -  "description": "Unique user or device ID for preference and deduplication tracking",
      -  "type": "string"
      -}
    • removedOutput schema / properties / dedupeKey
      Removed value: -{
      -  "description": "Deduplication cache key",
      -  "type": "string"
      -}
    • removedOutput schema / properties / locationSource
      Removed value: -{
      -  "description": "Source of location resolution",
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "reminderDue",
      -  "localDate",
      -  "nextPrayer",
      -  "nextPrayerAtUtc",
      -  "timezone",
      -  "calculationMethod",
      -  "madhab",
      -  "locationSource"
      -]New value: +[
      +  "reminderDue",
      +  "localDate",
      +  "nextPrayer",
      +  "nextPrayerAtUtc",
      +  "timezone",
      +  "calculationMethod",
      +  "madhab"
      +]
  8. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  9. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.