Raw schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 400,
"description": "Focused natural-language search query in Polish or English."
},
"content_types": {
"type": "array",
"minItems": 1,
"maxItems": 6,
"items": {
"type": "string",
"enum": [
"sermon",
"ai_study",
"prayer_book",
"person",
"place",
"bible"
]
},
"description": "Optional content categories to search; omitted preserves automatic mixed discovery. Unselected categories are not queried. prayer_book covers prayers, songs and fixed liturgical texts. ai_study results are AI-generated orientation, not evidence. Explicit bible selection enables bounded Scripture search without intent inference. Date/weekday/church filters apply only to sermons; camera_id requires sermon when content_types is supplied. Up to 6 entries; duplicates are removed. Existing source kind labels remain unchanged."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 8,
"default": 6,
"description": "Maximum number of compact source results to return."
},
"days_back": {
"type": "integer",
"minimum": 1,
"maximum": 36500,
"description": "Optional rolling calendar-day window ending today, for example 7 or 28. Omit when using date_from or date_to."
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional first Warsaw calendar day of an absolute archive period, inclusive."
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional last Warsaw calendar day of an absolute archive period, inclusive."
},
"weekday": {
"type": "integer",
"minimum": 0,
"maximum": 6,
"description": "Optional Warsaw weekday filter: Sunday=0, Monday=1, ..., Saturday=6."
},
"camera_id": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Optional stable church profile ID. When supplied, only public sermons from that church are searched."
}
},
"required": [
"query"
],
"additionalProperties": false
}