{
    "openapi": "3.0.3",
    "info": {
        "title": "EE DataCollector API",
        "version": "2.3.0",
        "description": "Асинхронный API расчетов с разделением SubjectContext и TemporalContext, плюс канонический экспорт Synthesis++."
    },
    "paths": {
        "\/api.php?action=create_task": {
            "post": {
                "summary": "Создать задачу расчета",
                "description": "Ставит задачу в очередь и возвращает request_id.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/TaskRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Задача принята в очередь",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/TaskCreatedResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Ошибка валидации\/JSON",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ValidationErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Ключ API отсутствует",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Метод не разрешен",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Превышен лимит запросов",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api.php?action=get_result": {
            "get": {
                "summary": "Получить статус\/результат задачи",
                "parameters": [
                    {
                        "name": "request_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Идентификатор задачи из create_task."
                    },
                    {
                        "name": "view",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "summary",
                                "explain",
                                "raw"
                            ],
                            "default": "summary"
                        },
                        "description": "Режим вывода для задач с synthesis. Для задач без synthesis параметр игнорируется."
                    },
                    {
                        "name": "api_key",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "API key for private request_id access (alternative to X-API-Key header)."
                    },
                    {
                        "name": "X-API-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "API key for private request_id access."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Статус выполнения или итоговые данные",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "$ref": "#\/components\/schemas\/TaskStatusResponse"
                                        },
                                        {
                                            "$ref": "#\/components\/schemas\/TaskErrorResult"
                                        },
                                        {
                                            "$ref": "#\/components\/schemas\/LegacyTaskResultSuccess"
                                        },
                                        {
                                            "$ref": "#\/components\/schemas\/SynthesisSummaryResponse"
                                        },
                                        {
                                            "$ref": "#\/components\/schemas\/SynthesisExplainResponse"
                                        },
                                        {
                                            "$ref": "#\/components\/schemas\/SynthesisRawResponse"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "request_id отсутствует или неверный формат",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Задача не найдена",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API key is required for private request_id",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for provided API key",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api.php?action=export_result": {
            "get": {
                "summary": "Экспорт результата synthesis",
                "description": "Экспортирует готовый synthesis-результат в NDJSON или CSV.",
                "parameters": [
                    {
                        "name": "request_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Идентификатор задачи из create_task."
                    },
                    {
                        "name": "format",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "ndjson",
                                "csv"
                            ],
                            "default": "ndjson"
                        },
                        "description": "Формат экспорта."
                    },
                    {
                        "name": "api_key",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "API key for private request_id access (alternative to X-API-Key header)."
                    },
                    {
                        "name": "X-API-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "API key for private request_id access."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Поток NDJSON или CSV",
                        "content": {
                            "application\/x-ndjson": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "{\"row_type\":\"summary\",\"request_id\":\"task_abc\",\"date\":\"2026-02-14\"}\n{\"row_type\":\"domain_component\",\"scale\":\"social\",\"domain\":\"ASTRO\",\"component\":12.3}"
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Некорректные параметры\/отсутствует synthesis",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Задача не найдена",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "Задача еще не готова к экспорту",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API key is required for private request_id",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden for provided API key",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api.php?action=get_hourly_forecast": {
            "get": {
                "summary": "РџРѕС‡Р°СЃРѕРІРѕР№ geocentric РїСЂРѕРіРЅРѕР· Р›СѓРЅС‹ Рё РїР»Р°РЅРµС‚ РЅР° СЃСѓС‚РєРё",
                "description": "РЎРёРЅС…СЂРѕРЅРЅРѕ РІРѕР·РІСЂР°С‰Р°РµС‚ local-hourly РјР°СЃСЃРёРІ РѕС‚ 00:00 Р·Р°РїСЂРѕС€РµРЅРЅРѕРіРѕ РґРЅСЏ РґРѕ 00:00 СЃР»РµРґСѓСЋС‰РµРіРѕ РґРЅСЏ РІРєР»СЋС‡РёС‚РµР»СЊРЅРѕ. Р’ РєР°Р¶РґРѕР№ С‚РѕС‡РєРµ РµСЃС‚СЊ РіРµРѕС†РµРЅС‚СЂРёС‡РµСЃРєРёРµ РїРѕР»РѕР¶РµРЅРёСЏ Р›СѓРЅС‹\/РїР»Р°РЅРµС‚, Р°СЃРїРµРєС‚С‹ Р›СѓРЅС‹, void of course Рё Р»СѓРЅРЅС‹Р№ РґРµРЅСЊ.",
                "parameters": [
                    {
                        "name": "date",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "description": "Local-РґР°С‚Р° РІ С„РѕСЂРјР°С‚Рµ YYYY-MM-DD."
                    },
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Р“РѕСЂРѕРґ РґР»СЏ Р°РІС‚РѕРїРѕРёСЃРєР° lat\/lng\/timezone. РР»Рё РїРµСЂРµРґР°Р№С‚Рµ lat\/lng."
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "РћРїС†РёРѕРЅР°Р»СЊРЅРѕРµ СѓС‚РѕС‡РЅРµРЅРёРµ РґР»СЏ city-lookup."
                    },
                    {
                        "name": "lat",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        },
                        "description": "РЁРёСЂРѕС‚Р°. РџРµСЂРµРґР°РІР°Р№С‚Рµ РІРјРµСЃС‚Рѕ city РёР»Рё РІРјРµСЃС‚Рµ СЃ city."
                    },
                    {
                        "name": "lng",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        },
                        "description": "Р”РѕР»РіРѕС‚Р°."
                    },
                    {
                        "name": "timezone",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "IANA timezone. РћР±СЏР·Р°С‚РµР»СЊРЅР° РїСЂРё lat\/lng Р±РµР· city-lookup."
                    },
                    {
                        "name": "api_key",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "API key (Р°Р»СЊС‚РµСЂРЅР°С‚РёРІР° X-API-Key)."
                    },
                    {
                        "name": "X-API-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "API key РґР»СЏ hourly-forecast endpoint."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "РџРѕС‡Р°СЃРѕРІРѕР№ РјР°СЃСЃРёРІ РїРѕ local-РґРЅСЋ",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/HourlyForecastResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "РќРµРєРѕСЂСЂРµРєС‚РЅС‹Рµ query-РїР°СЂР°РјРµС‚СЂС‹",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API key missing\/invalid",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "РњРµС‚РѕРґ РЅРµ СЂР°Р·СЂРµС€РµРЅ",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Quota \/ rate limit exceeded",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api.php?action=get_spec": {
            "get": {
                "summary": "Получить OpenAPI спецификацию",
                "responses": {
                    "200": {
                        "description": "OpenAPI JSON-описание",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api.php?action=get_reference": {
            "get": {
                "summary": "Получить справочные данные API",
                "responses": {
                    "200": {
                        "description": "Справочный JSON-ответ",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api.php?action=run_worker": {
            "post": {
                "summary": "Запуск worker (локально\/по токену)",
                "description": "Доступно только с localhost или с валидным X-Worker-Token.",
                "responses": {
                    "200": {
                        "description": "Сигнал worker отправлен",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/WorkerRunResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Доступ запрещен",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Метод не разрешен",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "TaskRequest": {
                "type": "object",
                "required": [
                    "api_key",
                    "user"
                ],
                "properties": {
                    "api_key": {
                        "type": "string",
                        "description": "Ключ API. Ранг ключа (adept\/master\/magus\/demiurge) определяет квоты и стоимость расчета в лимитере.",
                        "example": "655351024"
                    },
                    "calc_profile": {
                        "type": "string",
                        "enum": [
                            "A",
                            "B"
                        ],
                        "default": "A",
                        "description": "Профиль расчета весов (может также задаваться через X-Calc-Profile или query calc_profile)."
                    },
                    "user": {
                        "$ref": "#\/components\/schemas\/UserData"
                    },
                    "systems": {
                        "$ref": "#\/components\/schemas\/SystemsList"
                    },
                    "current_location": {
                        "$ref": "#\/components\/schemas\/CurrentLocation"
                    },
                    "forecast": {
                        "$ref": "#\/components\/schemas\/ForecastParams"
                    },
                    "response": {
                        "$ref": "#\/components\/schemas\/ResponseOptions"
                    }
                }
            },
            "UserData": {
                "type": "object",
                "required": [
                    "first_name",
                    "last_name",
                    "birth_date",
                    "birth_time",
                    "birth_city"
                ],
                "properties": {
                    "first_name": {
                        "type": "string",
                        "example": "Евгений"
                    },
                    "middle_name": {
                        "type": "string",
                        "example": "Владимирович"
                    },
                    "last_name": {
                        "type": "string",
                        "example": "Ефимченко"
                    },
                    "birth_date": {
                        "type": "string",
                        "format": "date",
                        "example": "1981-10-27"
                    },
                    "birth_time": {
                        "type": "string",
                        "description": "Формат HH:MM или HH:MM:SS",
                        "example": "04:13"
                    },
                    "birth_city": {
                        "type": "string",
                        "example": "Норильск"
                    },
                    "birth_country": {
                        "type": "string",
                        "example": "Россия"
                    },
                    "gender": {
                        "type": "string",
                        "enum": [
                            "male",
                            "female"
                        ]
                    }
                }
            },
            "SystemsList": {
                "type": "array",
                "items": {
                    "type": "string",
                    "enum": [
                        "numerology",
                        "astrology",
                        "bodygraph",
                        "transits",
                        "forecast",
                        "synthesis"
                    ]
                },
                "example": [
                    "astrology",
                    "transits",
                    "forecast",
                    "synthesis"
                ]
            },
            "CurrentLocation": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "example": "Орел"
                    },
                    "country": {
                        "type": "string",
                        "example": "Россия"
                    },
                    "lat": {
                        "type": "number",
                        "format": "float",
                        "example": 52.968
                    },
                    "lng": {
                        "type": "number",
                        "format": "float",
                        "example": 36.0994
                    },
                    "timezone": {
                        "type": "string",
                        "example": "Europe\/Moscow"
                    }
                }
            },
            "ForecastParams": {
                "type": "object",
                "properties": {
                    "period_type": {
                        "type": "string",
                        "enum": [
                            "day",
                            "week",
                            "month"
                        ],
                        "default": "day"
                    },
                    "period_start_date": {
                        "type": "string",
                        "format": "date",
                        "example": "2026-02-14"
                    },
                    "target_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Алиас period_start_date"
                    },
                    "target_time": {
                        "type": "string",
                        "description": "Формат HH:MM или HH:MM:SS",
                        "example": "12:00:00"
                    },
                    "space_weather_mode": {
                        "type": "string",
                        "enum": [
                            "allow_simulated",
                            "observed_or_estimated",
                            "observed_only"
                        ],
                        "default": "allow_simulated",
                        "description": "Режим качества Kp."
                    }
                }
            },
            "ResponseOptions": {
                "type": "object",
                "properties": {
                    "omit_portrait_payload": {
                        "type": "boolean",
                        "default": false,
                        "description": "Если true, в systems не возвращаются тяжелые портретные ветки numerology\/astrology\/bodygraph."
                    }
                }
            },
            "TaskCreatedResponse": {
                "type": "object",
                "required": [
                    "status",
                    "request_id"
                ],
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "queued"
                    },
                    "message": {
                        "type": "string",
                        "example": "Задача принята"
                    },
                    "request_id": {
                        "type": "string",
                        "example": "task_698cdc670473d"
                    }
                }
            },
            "TaskStatusResponse": {
                "type": "object",
                "required": [
                    "status",
                    "message"
                ],
                "properties": {
                    "status": {
                        "type": "string",
                        "enum": [
                            "pending",
                            "processing"
                        ]
                    },
                    "message": {
                        "type": "string",
                        "example": "Расчет выполняется..."
                    }
                }
            },
            "TaskErrorResult": {
                "type": "object",
                "required": [
                    "status",
                    "error"
                ],
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "error"
                    },
                    "error": {
                        "oneOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "object"
                            }
                        ],
                        "example": "[CRITICAL_EXTERNAL] Данные эфемерид недоступны"
                    }
                }
            },
            "LegacyTaskResultSuccess": {
                "type": "object",
                "required": [
                    "status",
                    "request_id",
                    "systems"
                ],
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "success"
                    },
                    "request_id": {
                        "type": "string",
                        "example": "task_698cdc670473d"
                    },
                    "context": {
                        "type": "object",
                        "properties": {
                            "timezone": {
                                "type": "string",
                                "example": "Asia\/Krasnoyarsk"
                            }
                        }
                    },
                    "systems": {
                        "type": "object",
                        "description": "Классический блок модулей. В systems.numerology.data сохраняется legacy matrix_destiny и добавляется matrix_destiny_v2 (MatrixDestiny22 v2.1.0 без корневых дублей).",
                        "additionalProperties": true
                    },
                    "warnings": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "MatrixDestinyV2": {
                "type": "object",
                "description": "Формализованная модель матрицы судьбы. Старый matrix_destiny сохраняется отдельно и не меняется.",
                "properties": {
                    "system_name": {
                        "type": "string",
                        "example": "MatrixDestiny22"
                    },
                    "version": {
                        "type": "string",
                        "example": "2.1.0"
                    },
                    "basis": {
                        "type": "object",
                        "description": "birth_date, birth_time, calendar, arcana_range, reduction_rule=ladini_digit_sum_22, zero_maps_to=22.",
                        "additionalProperties": true
                    },
                    "canonical": {
                        "type": "object",
                        "description": "Официальный слой MatrixDestiny22 v2.1.0: core, age_nodes, generic_programs, channels, health_map. Используйте его для стабильных интеграций.",
                        "additionalProperties": true
                    },
                    "derived_experimental": {
                        "type": "object",
                        "description": "Производный explain-слой: nodes, lines, sectors, age_cycle, interpretation, activation. Это не канон; слой может расширяться без изменения canonical-ядра.",
                        "additionalProperties": true
                    },
                    "meta": {
                        "type": "object",
                        "description": "Метаданные расчета: canonical_mode, compatibility_goal, normalization_rule, source_mapping, health_map_formula_version.",
                        "additionalProperties": true
                    }
                }
            },
            "SynthesisSummaryResponse": {
                "type": "object",
                "required": [
                    "status",
                    "view",
                    "schema_version",
                    "calculation_version",
                    "rules_version",
                    "weights_hash",
                    "conflict_rules_version",
                    "normalization_version",
                    "calc_profile_id",
                    "request_id",
                    "date",
                    "summary",
                    "health"
                ],
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "success"
                    },
                    "view": {
                        "type": "string",
                        "example": "summary"
                    },
                    "schema_version": {
                        "type": "string",
                        "example": "synthesis-4.0.0"
                    },
                    "calculation_version": {
                        "type": "string",
                        "example": "ipsm-personalized-1.1.0"
                    },
                    "rules_version": {
                        "type": "string",
                        "example": "synthesis-rules-4.1.0"
                    },
                    "weights_hash": {
                        "type": "string"
                    },
                    "conflict_rules_version": {
                        "type": "string",
                        "example": "conflict-rules-1.0.0"
                    },
                    "normalization_version": {
                        "type": "string",
                        "example": "domain-balanced-personalized-1.0.0"
                    },
                    "calc_profile_id": {
                        "type": "string",
                        "enum": [
                            "A",
                            "B"
                        ]
                    },
                    "request_id": {
                        "type": "string"
                    },
                    "date": {
                        "type": "string",
                        "format": "date"
                    },
                    "summary": {
                        "$ref": "#\/components\/schemas\/SynthesisSummaryPayload"
                    },
                    "health": {
                        "$ref": "#\/components\/schemas\/SynthesisHealthPayload"
                    },
                    "warnings": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "SynthesisExplainResponse": {
                "allOf": [
                    {
                        "$ref": "#\/components\/schemas\/SynthesisSummaryResponse"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "view": {
                                "type": "string",
                                "example": "explain"
                            },
                            "domain_components": {
                                "type": "object",
                                "additionalProperties": true
                            },
                            "breakdown_short": {
                                "type": "object",
                                "additionalProperties": true
                            },
                            "conflicts": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            },
                            "reliability_summary": {
                                "type": "object",
                                "additionalProperties": true
                            },
                            "model_health": {
                                "type": "object",
                                "additionalProperties": true
                            },
                            "archetype_profile": {
                                "type": "object",
                                "description": "Top-level Synthesis++ v4.1 archetype profile with raw_scores, effective scores, evidence, evidence_balance and archetype_balance_hash.",
                                "additionalProperties": true
                            }
                        }
                    }
                ]
            },
            "SynthesisRawResponse": {
                "type": "object",
                "required": [
                    "status",
                    "view",
                    "schema_version",
                    "calculation_version",
                    "rules_version",
                    "weights_hash",
                    "conflict_rules_version",
                    "normalization_version",
                    "calc_profile_id",
                    "request_id",
                    "date",
                    "health",
                    "raw_profile"
                ],
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "success"
                    },
                    "view": {
                        "type": "string",
                        "example": "raw"
                    },
                    "schema_version": {
                        "type": "string",
                        "example": "synthesis-4.0.0"
                    },
                    "calculation_version": {
                        "type": "string",
                        "example": "ipsm-personalized-1.1.0"
                    },
                    "rules_version": {
                        "type": "string",
                        "example": "synthesis-rules-4.1.0"
                    },
                    "weights_hash": {
                        "type": "string"
                    },
                    "conflict_rules_version": {
                        "type": "string",
                        "example": "conflict-rules-1.0.0"
                    },
                    "normalization_version": {
                        "type": "string",
                        "example": "domain-balanced-personalized-1.0.0"
                    },
                    "calc_profile_id": {
                        "type": "string",
                        "enum": [
                            "A",
                            "B"
                        ]
                    },
                    "request_id": {
                        "type": "string"
                    },
                    "date": {
                        "type": "string",
                        "format": "date"
                    },
                    "health": {
                        "$ref": "#\/components\/schemas\/SynthesisHealthPayload"
                    },
                    "raw_profile": {
                        "type": "object",
                        "additionalProperties": true
                    },
                    "warnings": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "SynthesisSummaryPayload": {
                "type": "object",
                "properties": {
                    "scales": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "number"
                        }
                    },
                    "superpower": {
                        "type": "string"
                    },
                    "quality_score": {
                        "type": "number",
                        "format": "float"
                    },
                    "conflicts_count": {
                        "type": "integer"
                    }
                }
            },
            "SynthesisHealthPayload": {
                "type": "object",
                "properties": {
                    "analysis_time_ms": {
                        "type": "integer"
                    },
                    "memory_peak_mb": {
                        "type": "number",
                        "format": "float"
                    },
                    "observations_used": {
                        "type": "integer"
                    },
                    "observations_total": {
                        "type": "integer"
                    },
                    "aggregation_drift_detected": {
                        "type": "boolean"
                    },
                    "warnings_count": {
                        "type": "integer",
                        "description": "Count of final public top-level warnings."
                    },
                    "synthesis_warnings_count": {
                        "type": "integer",
                        "description": "Count of public warnings originating from synthesis model health before legacy warning merge."
                    }
                }
            },
            "HourlyForecastResponse": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "success"
                    },
                    "cached": {
                        "type": "boolean",
                        "example": true
                    },
                    "data": {
                        "$ref": "#\/components\/schemas\/HourlyForecastData"
                    }
                }
            },
            "HourlyForecastData": {
                "type": "object",
                "properties": {
                    "schema_version": {
                        "type": "string",
                        "example": "1.0.0"
                    },
                    "meta": {
                        "type": "object",
                        "additionalProperties": true
                    },
                    "hours": {
                        "type": "array",
                        "items": {
                            "$ref": "#\/components\/schemas\/HourlyForecastHour"
                        }
                    }
                }
            },
            "HourlyForecastHour": {
                "type": "object",
                "properties": {
                    "hour_index": {
                        "type": "integer",
                        "example": 0
                    },
                    "local_datetime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_datetime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "moon": {
                        "$ref": "#\/components\/schemas\/HourlyForecastBody"
                    },
                    "planets": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#\/components\/schemas\/HourlyForecastBody"
                        }
                    },
                    "moon_aspects": {
                        "type": "array",
                        "items": {
                            "$ref": "#\/components\/schemas\/HourlyForecastAspect"
                        }
                    },
                    "lunar": {
                        "$ref": "#\/components\/schemas\/HourlyForecastLunar"
                    }
                }
            },
            "HourlyForecastBody": {
                "type": "object",
                "properties": {
                    "key": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "ecliptic_longitude_deg": {
                        "type": "number",
                        "format": "float"
                    },
                    "ecliptic_latitude_deg": {
                        "type": "number",
                        "format": "float",
                        "nullable": true
                    },
                    "sign": {
                        "type": "string"
                    },
                    "sign_label": {
                        "type": "string"
                    },
                    "sign_degree": {
                        "type": "number",
                        "format": "float"
                    },
                    "is_retro": {
                        "type": "boolean"
                    },
                    "speed_deg_h": {
                        "type": "number",
                        "format": "float",
                        "nullable": true
                    }
                }
            },
            "HourlyForecastAspect": {
                "type": "object",
                "properties": {
                    "planet_key": {
                        "type": "string"
                    },
                    "planet_name": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "label": {
                        "type": "string"
                    },
                    "exact_angle": {
                        "type": "number",
                        "format": "float"
                    },
                    "separation": {
                        "type": "number",
                        "format": "float"
                    },
                    "delta": {
                        "type": "number",
                        "format": "float"
                    },
                    "harmonic": {
                        "type": "boolean"
                    }
                }
            },
            "HourlyForecastLunar": {
                "type": "object",
                "properties": {
                    "phase_name": {
                        "type": "string"
                    },
                    "phase_angle": {
                        "type": "number",
                        "format": "float"
                    },
                    "age_days": {
                        "type": "number",
                        "format": "float"
                    },
                    "lunar_day": {
                        "type": "integer"
                    },
                    "moon_rise_local": {
                        "type": "string",
                        "nullable": true
                    },
                    "is_satanic": {
                        "type": "boolean"
                    },
                    "satanic_desc": {
                        "type": "string",
                        "nullable": true
                    },
                    "is_void_of_course": {
                        "type": "boolean"
                    },
                    "void_of_course": {
                        "$ref": "#\/components\/schemas\/HourlyForecastVoidCourse"
                    }
                }
            },
            "HourlyForecastVoidCourse": {
                "type": "object",
                "properties": {
                    "is_void_now": {
                        "type": "boolean"
                    },
                    "starts_at_utc": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "starts_at_local": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "ends_at_utc": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "ends_at_local": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "next_sign": {
                        "type": "string",
                        "nullable": true
                    },
                    "last_aspect": {
                        "type": "object",
                        "nullable": true,
                        "additionalProperties": true
                    },
                    "next_aspect_before_sign_change": {
                        "type": "object",
                        "nullable": true,
                        "additionalProperties": true
                    }
                }
            },
            "WorkerRunResponse": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "ok"
                    },
                    "message": {
                        "type": "string",
                        "example": "Сигнал worker отправлен"
                    }
                }
            },
            "ErrorResponse": {
                "type": "object",
                "required": [
                    "status",
                    "message"
                ],
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "error"
                    },
                    "message": {
                        "type": "string"
                    }
                }
            },
            "ValidationErrorResponse": {
                "type": "object",
                "required": [
                    "status"
                ],
                "properties": {
                    "status": {
                        "type": "string",
                        "example": "error"
                    },
                    "message": {
                        "type": "string"
                    },
                    "errors": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "Поле 'last_name' обязательно"
                        ]
                    }
                }
            }
        }
    },
    "servers": [
        {
            "url": "https:\/\/digihash.ru\/datacollector"
        }
    ],
    "x-response-field-dictionary": [
        {
            "path": "**.status",
            "type": "string",
            "title": "Статус блока",
            "description": "Состояние выполнения операции или расчета блока.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.message",
            "type": "string",
            "title": "Сообщение",
            "description": "Человекочитаемое сообщение о состоянии или ошибке.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.error",
            "type": "string|object",
            "title": "Ошибка",
            "description": "Описание ошибки выполнения запроса или задачи.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.request_id",
            "type": "string",
            "title": "ID задачи",
            "description": "Внешний идентификатор задачи для polling и экспорта.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.schema_version",
            "type": "string",
            "title": "Версия схемы",
            "description": "Версия контракта соответствующего блока данных.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.date",
            "type": "string",
            "title": "Дата",
            "description": "Календарная дата в формате YYYY-MM-DD или ISO-8601.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.type",
            "type": "string",
            "title": "Тип",
            "description": "Машинный тип объекта или режима.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.name",
            "type": "string",
            "title": "Название",
            "description": "Человекочитаемое название объекта.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.label",
            "type": "string",
            "title": "Название",
            "description": "Краткая человекочитаемая подпись значения.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.desc",
            "type": "string",
            "title": "Описание",
            "description": "Краткое смысловое описание значения.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.description",
            "type": "string",
            "title": "Описание",
            "description": "Человекочитаемое описание объекта или правила.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.value",
            "type": "mixed",
            "title": "Значение",
            "description": "Расчетное или справочное значение поля.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.val",
            "type": "integer|float|string",
            "title": "Значение",
            "description": "Основное расчетное значение элемента.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.source",
            "type": "string|object",
            "title": "Источник",
            "description": "Источник данных или расчета.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.meta",
            "type": "object",
            "title": "Метаданные",
            "description": "Служебные метаданные расчета, версии или источника.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.city",
            "type": "string",
            "title": "Город",
            "description": "Город, использованный в геоконтексте расчета.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.country",
            "type": "string",
            "title": "Страна",
            "description": "Страна, переданная или определенная для геоконтекста.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.lat",
            "type": "float",
            "title": "Широта",
            "description": "Географическая широта в градусах.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.lng",
            "type": "float",
            "title": "Долгота",
            "description": "Географическая долгота в градусах.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.timezone",
            "type": "string",
            "title": "Часовой пояс",
            "description": "IANA-идентификатор часового пояса.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.calculated_at_utc",
            "type": "string",
            "title": "Время расчета UTC",
            "description": "Момент расчета в UTC.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.calculated_at_local",
            "type": "string",
            "title": "Локальное время расчета",
            "description": "Момент расчета в локальном часовом поясе.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.location_used",
            "type": "object",
            "title": "Использованная локация",
            "description": "Фактическая локация, примененная в расчете.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.source_formula",
            "type": "object",
            "title": "Формула расчета",
            "description": "Структурированная формула получения значения.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.raw_expression",
            "type": "string",
            "title": "Исходная формула",
            "description": "Человекочитаемое выражение формулы.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.operands",
            "type": "array",
            "title": "Операнды",
            "description": "Входные значения формулы.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.raw_result",
            "type": "integer|float|string",
            "title": "Сырой результат",
            "description": "Результат до нормализации.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.normalized_result",
            "type": "integer|float|string",
            "title": "Нормализованный результат",
            "description": "Результат после применения правила нормализации.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.rule",
            "type": "string",
            "title": "Правило",
            "description": "Идентификатор правила нормализации или расчета.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.ecliptic_longitude_deg",
            "type": "float",
            "title": "Эклиптическая долгота",
            "description": "Положение объекта на эклиптике в градусах.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.ecliptic_latitude_deg",
            "type": "float|null",
            "title": "Эклиптическая широта",
            "description": "Эклиптическая широта объекта в градусах.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.sign",
            "type": "string",
            "title": "Знак",
            "description": "Машинный код знака Зодиака.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.sign_label",
            "type": "string",
            "title": "Название знака",
            "description": "Русское название знака Зодиака.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.sign_degree",
            "type": "float|integer",
            "title": "Градус в знаке",
            "description": "Положение внутри текущего знака.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.is_retro",
            "type": "boolean",
            "title": "Ретроградность",
            "description": "Признак ретроградного движения объекта.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.speed_deg_h",
            "type": "float|null",
            "title": "Скорость",
            "description": "Оценочная скорость движения в градусах в час.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.gate",
            "type": "integer",
            "title": "Ворота HD",
            "description": "Номер ворот Human Design.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.line",
            "type": "integer",
            "title": "Линия HD",
            "description": "Номер линии Human Design.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "**.defined",
            "type": "boolean",
            "title": "Определенность центра",
            "description": "Признак определенного центра в bodygraph.",
            "category": "common",
            "visibility": "public"
        },
        {
            "path": "status",
            "type": "string",
            "title": "Статус ответа",
            "description": "Статус верхнего уровня: pending, processing, success или error.",
            "category": "root",
            "visibility": "public",
            "example": "success"
        },
        {
            "path": "request_id",
            "type": "string",
            "title": "ID задачи",
            "description": "Внешний идентификатор задачи, возвращаемый create_task и включаемый в get_result\/export_result для трассировки результата.",
            "category": "root",
            "visibility": "public",
            "example": "task_e2475dfc1c5d07bc148e7da7"
        },
        {
            "path": "warnings",
            "type": "array",
            "title": "Предупреждения ответа",
            "description": "Список глобальных предупреждений worker-процесса или расчетного блока.",
            "category": "root",
            "visibility": "public"
        },
        {
            "path": "warnings[]",
            "type": "string",
            "title": "Предупреждение",
            "description": "Глобальное предупреждение worker-процесса или расчетного блока.",
            "category": "root",
            "visibility": "public"
        },
        {
            "path": "context.timezone",
            "type": "string",
            "title": "Часовой пояс ответа",
            "description": "Legacy alias subject timezone в верхнеуровневом API-контексте. Для новых интеграций используйте context.subject_timezone и context.temporal_timezone\/systems.context.*_timezone.",
            "category": "context",
            "visibility": "public",
            "example": "Asia\/Krasnoyarsk",
            "status": "legacy"
        },
        {
            "path": "context.subject_timezone",
            "type": "string",
            "title": "Subject timezone",
            "description": "IANA timezone натального subject-контекста.",
            "category": "context",
            "visibility": "public",
            "example": "Asia\/Krasnoyarsk"
        },
        {
            "path": "context.temporal_timezone",
            "type": "string",
            "title": "Temporal timezone",
            "description": "IANA timezone temporal-контекста target_date\/target_time.",
            "category": "context",
            "visibility": "public",
            "example": "Europe\/Moscow"
        },
        {
            "path": "context.quota",
            "type": "object",
            "title": "Квота запроса",
            "description": "Технический блок списания и возврата почасовой квоты API-ключа.",
            "category": "quota",
            "visibility": "technical"
        },
        {
            "path": "context.quota.charged_cost",
            "type": "integer",
            "title": "Списанная стоимость запроса",
            "description": "Изначально списанная стоимость запроса в условных единицах квоты.",
            "category": "quota",
            "visibility": "technical",
            "example": 3
        },
        {
            "path": "context.quota.effective_cost",
            "type": "integer",
            "title": "Итоговая стоимость запроса",
            "description": "Стоимость после применения политики кэша и возможного возврата квоты.",
            "category": "quota",
            "visibility": "technical",
            "example": 1
        },
        {
            "path": "context.quota.refunded_cost",
            "type": "integer",
            "title": "Возвращенная квота",
            "description": "Количество условных единиц квоты, возвращенное после cache-hit.",
            "category": "quota",
            "visibility": "technical",
            "example": 2
        },
        {
            "path": "context.quota.cache_hit",
            "type": "boolean",
            "title": "Признак cache-hit",
            "description": "true означает, что расчет был обслужен из кэша с учетом политики возврата.",
            "category": "quota",
            "visibility": "technical",
            "example": true
        },
        {
            "path": "context.quota.policy",
            "type": "string",
            "title": "Политика квоты",
            "description": "Идентификатор примененной политики списания и возврата квоты.",
            "category": "quota",
            "visibility": "technical",
            "example": "refund_after_successful_cache_hit"
        },
        {
            "path": "systems",
            "type": "object",
            "title": "Расчетные системы",
            "description": "Классический ответ с выбранными модулями расчета.",
            "category": "systems",
            "visibility": "public"
        },
        {
            "path": "systems.schema_version",
            "type": "string",
            "title": "Версия схемы systems",
            "description": "Версия схемы верхнего блока systems.",
            "category": "systems",
            "visibility": "public",
            "example": "2.2.5"
        },
        {
            "path": "systems.context",
            "type": "object",
            "title": "Контекст расчета",
            "description": "Subject\/temporal контекст и параметры проекции ответа.",
            "category": "systems.context",
            "visibility": "public"
        },
        {
            "path": "systems.context.subject.**",
            "type": "mixed",
            "title": "Параметр субъекта",
            "description": "Натальные неизменяемые данные пользователя: ФИО, дата\/время\/место рождения и координаты.",
            "category": "systems.context",
            "visibility": "public"
        },
        {
            "path": "systems.context.portrait.user_hash",
            "type": "string",
            "title": "Хеш портрета",
            "description": "Стабильный хеш subject-контекста для кэша портрета.",
            "category": "systems.context",
            "visibility": "technical"
        },
        {
            "path": "systems.context.portrait.cached",
            "type": "boolean",
            "title": "Портрет из кэша",
            "description": "true означает, что immutable portrait был прочитан из кэша.",
            "category": "systems.context",
            "visibility": "technical"
        },
        {
            "path": "systems.context.response.omit_portrait_payload",
            "type": "boolean",
            "title": "Исключение портрета",
            "description": "true означает, что тяжелые portrait-блоки не включены в ответ.",
            "category": "systems.context",
            "visibility": "public"
        },
        {
            "path": "systems.context.calc_profile_id",
            "type": "string",
            "title": "Профиль расчета",
            "description": "Профиль весов synthesis: A или B.",
            "category": "systems.context",
            "visibility": "public",
            "example": "A"
        },
        {
            "path": "systems.context.subject_timezone",
            "type": "string",
            "title": "Subject timezone",
            "description": "IANA timezone натального subject-контекста. Дублирует systems.context.subject.birth_timezone для явности.",
            "category": "systems.context",
            "visibility": "public",
            "example": "Asia\/Krasnoyarsk"
        },
        {
            "path": "systems.context.temporal.**",
            "type": "mixed",
            "title": "Параметр temporal-контекста",
            "description": "Временной и географический параметр прогноза или транзитов.",
            "category": "systems.context",
            "visibility": "public"
        },
        {
            "path": "systems.context.temporal.target_time",
            "type": "string",
            "title": "Целевое локальное время",
            "description": "Локальное время temporal-контекста. Используется одинаково для root transits, forecast day transits, Raziel planetary hours и Chaldean\/Vedic daily calculations.",
            "category": "systems.context",
            "visibility": "public"
        },
        {
            "path": "systems.context.temporal_timezone",
            "type": "string",
            "title": "Temporal timezone",
            "description": "IANA timezone temporal-контекста. Дублирует systems.context.temporal.timezone для явности.",
            "category": "systems.context",
            "visibility": "public",
            "example": "Europe\/Moscow"
        },
        {
            "path": "systems.context.forecast_cache.cached",
            "type": "boolean",
            "title": "Прогноз из кэша",
            "description": "true означает, что temporal forecast был прочитан из кэша.",
            "category": "systems.context",
            "visibility": "technical"
        },
        {
            "path": "systems.numerology",
            "type": "object",
            "title": "Нумерология",
            "description": "Портретные и temporal нумерологические расчеты.",
            "category": "numerology",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.life_path",
            "type": "integer",
            "title": "Число жизненного пути",
            "description": "Число жизненного пути по дате рождения.",
            "category": "numerology.base",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.destiny",
            "type": "integer",
            "title": "Число судьбы",
            "description": "Число судьбы по полному имени.",
            "category": "numerology.base",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.personality",
            "type": "integer",
            "title": "Число личности",
            "description": "Число личности по согласным полного имени.",
            "category": "numerology.base",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.soul_urge",
            "type": "integer",
            "title": "Число души",
            "description": "Число души по гласным полного имени.",
            "category": "numerology.base",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.maturity",
            "type": "integer",
            "title": "Число зрелости",
            "description": "Сводное число зрелости на базе life_path и destiny.",
            "category": "numerology.base",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.name_breakdown.*",
            "type": "mixed",
            "title": "Разбор имени",
            "description": "Промежуточные суммы полного имени, гласных и согласных.",
            "category": "numerology.base",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.meta.context",
            "type": "string",
            "title": "Контекст нумерологии",
            "description": "Режим нумерологического расчета: portrait или temporal.",
            "category": "numerology.base",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.meta.calculation_basis",
            "type": "string",
            "title": "Основа расчета нумерологии",
            "description": "Источник входных данных, использованный для нумерологического расчета.",
            "category": "numerology.base",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.raziel_system.hebrew_spelling",
            "type": "string",
            "title": "Еврейская запись имени",
            "description": "Транслитерированная запись полного имени в символах еврейского алфавита для расчета Raziel.",
            "category": "numerology.raziel",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.raziel_system.gematria_full",
            "type": "integer",
            "title": "Полная гематрия",
            "description": "Полная сумма гематрии имени.",
            "category": "numerology.raziel",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.raziel_system.gematria_reduced",
            "type": "integer",
            "title": "Редуцированная гематрия",
            "description": "Редуцированное значение гематрии имени.",
            "category": "numerology.raziel",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny.*.val",
            "type": "integer",
            "title": "Аркан legacy-матрицы",
            "description": "Числовое значение аркана 1..22.",
            "category": "numerology.matrix_destiny",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny.*.label",
            "type": "string",
            "title": "Название аркана",
            "description": "Русское название аркана legacy-матрицы.",
            "category": "numerology.matrix_destiny",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny.*.desc",
            "type": "string",
            "title": "Роль точки матрицы",
            "description": "Краткая смысловая роль точки в legacy-матрице.",
            "category": "numerology.matrix_destiny",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny.sky_line",
            "type": "integer",
            "title": "Небесная линия",
            "description": "Значение небесной линии legacy-матрицы.",
            "category": "numerology.matrix_destiny",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny.earth_line",
            "type": "integer",
            "title": "Земная линия",
            "description": "Значение земной линии legacy-матрицы.",
            "category": "numerology.matrix_destiny",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.chaldean.**",
            "type": "mixed",
            "title": "Халдейская нумерология",
            "description": "Поле халдейской ветки: системное имя, числа, управители, составные значения или meta-контекст.",
            "category": "numerology.chaldean",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.vedic.**",
            "type": "mixed",
            "title": "Ведическая нумерология",
            "description": "Поле ведической ветки: jiva, karma, nama, отношения планет или meta-контекст.",
            "category": "numerology.vedic",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.psycho_matrix.system_name",
            "type": "string",
            "title": "Название психоматрицы",
            "description": "Название системы психоматрицы.",
            "category": "numerology.psycho_matrix",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.psycho_matrix.**",
            "type": "mixed",
            "title": "Психоматрица",
            "description": "Поле психоматрицы Пифагора: рабочие числа, ячейки матрицы, линии и метаданные.",
            "category": "numerology.psycho_matrix",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.psycho_matrix.working_numbers[]",
            "type": "integer",
            "title": "Рабочее число психоматрицы",
            "description": "Промежуточное рабочее число квадрата Пифагора.",
            "category": "numerology.psycho_matrix",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.psycho_matrix.matrix.*.count",
            "type": "integer",
            "title": "Количество цифр",
            "description": "Количество повторений цифры в квадрате Пифагора.",
            "category": "numerology.psycho_matrix",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.psycho_matrix.matrix.*.val",
            "type": "string",
            "title": "Повторы цифры",
            "description": "Строковое представление повторений цифры.",
            "category": "numerology.psycho_matrix",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.psycho_matrix.matrix.*.quality",
            "type": "string",
            "title": "Качество цифры",
            "description": "Смысловая зона цифры в психоматрице.",
            "category": "numerology.psycho_matrix",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.psycho_matrix.lines.*",
            "type": "mixed",
            "title": "Линия психоматрицы",
            "description": "Рассчитанный показатель линии психоматрицы.",
            "category": "numerology.psycho_matrix",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2",
            "type": "object",
            "title": "MatrixDestiny22 v2",
            "description": "Новый контракт матрицы судьбы: basis, canonical, derived_experimental и meta.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.**",
            "type": "mixed",
            "title": "Поле MatrixDestiny22 v2",
            "description": "Поле нового контракта MatrixDestiny22: basis, canonical, derived_experimental или meta.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.system_name",
            "type": "string",
            "title": "Название MatrixDestiny22",
            "description": "Название канонической модели матрицы судьбы.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public",
            "example": "MatrixDestiny22"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.version",
            "type": "string",
            "title": "Версия MatrixDestiny22",
            "description": "Версия контракта MatrixDestiny22.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public",
            "example": "2.1.0"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.basis.*",
            "type": "mixed",
            "title": "База MatrixDestiny22",
            "description": "Исходные данные и правила расчета MatrixDestiny22.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.canonical.core.*.*",
            "type": "mixed",
            "title": "Каноническое ядро MatrixDestiny22",
            "description": "Поле базового канонического якоря: val, label, desc, semantic_role или source_formula.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.canonical.age_nodes.*.*",
            "type": "mixed",
            "title": "Возрастной узел MatrixDestiny22",
            "description": "Поле канонического возрастного узла.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.canonical.generic_programs.*.*",
            "type": "mixed",
            "title": "Родовая программа MatrixDestiny22",
            "description": "Поле канонической родовой линии.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.canonical.channels.*.*",
            "type": "mixed",
            "title": "Канал MatrixDestiny22",
            "description": "Поле канонического канала self_search, socialization или spiritual_exam.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.canonical.health_map.*.*",
            "type": "mixed",
            "title": "Карта здоровья MatrixDestiny22",
            "description": "Поле строки канонической карты здоровья.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.nodes.*.*",
            "type": "mixed",
            "title": "Производный узел MatrixDestiny22",
            "description": "Поле explain-узла: id, val, label, group, semantic_role, description, source_formula или position_hint.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.lines.*.*",
            "type": "mixed",
            "title": "Производная линия MatrixDestiny22",
            "description": "Поле explain-линии матрицы.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.sectors.*.*",
            "type": "mixed",
            "title": "Производный сектор MatrixDestiny22",
            "description": "Поле explain-сектора матрицы.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.age_cycle.*",
            "type": "mixed",
            "title": "Возрастной цикл MatrixDestiny22",
            "description": "Статические возрастные anchors MatrixDestiny22. Temporal current_age\/current_segment\/reference_date удалены из immutable portrait.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.interpretation.*",
            "type": "mixed",
            "title": "Интерпретация MatrixDestiny22",
            "description": "Метрики и текстовые признаки explain-интерпретации.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.interpretation.shadow_arcana",
            "type": "array<int>",
            "title": "Legacy shadow arcana",
            "description": "Legacy explain-поле. Список уникальных арканов из derived_experimental.nodes, у которых polarity=shadow. Это статический маркер геометрии матрицы, не дневная активация, не текущий кризис, не прогноз и не диагноз.",
            "category": "numerology.matrix_destiny_v2.interpretation",
            "visibility": "public",
            "status": "legacy",
            "deprecated_after": "matrix-destiny-interpretation-2.2.0",
            "replacement": "static_shadow_arcana"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.interpretation.shadow_arcana_deprecated",
            "type": "boolean",
            "title": "Признак legacy shadow_arcana",
            "description": "true означает, что shadow_arcana сохранен только как legacy alias для static_shadow_arcana.",
            "category": "numerology.matrix_destiny_v2.interpretation",
            "visibility": "public",
            "example": true,
            "status": "actual"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.interpretation.static_shadow_arcana",
            "type": "array<int>",
            "title": "Статические теневые арканы",
            "description": "Список уникальных арканов с polarity=shadow, присутствующих в статической геометрии derived_experimental.nodes. Не является temporal-прогнозом и не создает conflict_nodes без активирующего evidence.",
            "category": "numerology.matrix_destiny_v2.interpretation",
            "visibility": "public",
            "example": [
                16
            ],
            "status": "actual"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.interpretation.static_shadow_nodes",
            "type": "object<string,array<string>>",
            "title": "Узлы статических теневых арканов",
            "description": "Карта arcana => список node_id, где этот shadow-аркан присутствует в derived_experimental.nodes.",
            "category": "numerology.matrix_destiny_v2.interpretation",
            "visibility": "public",
            "example": {
                "16": [
                    "money_c"
                ]
            },
            "status": "actual"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.interpretation.static_shadow_domains",
            "type": "object<string,array<string>>",
            "title": "Домены статических теневых узлов",
            "description": "Карта domain\/group => список node_id, где присутствуют статические shadow-арканы.",
            "category": "numerology.matrix_destiny_v2.interpretation",
            "visibility": "public",
            "example": {
                "money": [
                    "money_c"
                ]
            },
            "status": "actual"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.interpretation.interpretation_version",
            "type": "string",
            "title": "Версия интерпретации",
            "description": "Версия алгоритма статической explain-интерпретации. Для исправленной модели: matrix-destiny-interpretation-2.2.0.",
            "category": "numerology.matrix_destiny_v2.interpretation",
            "visibility": "public",
            "example": "matrix-destiny-interpretation-2.2.0",
            "status": "actual"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.interpretation.shadow_arcana_semantics",
            "type": "string",
            "title": "Семантика shadow_arcana",
            "description": "Фиксирует, что shadow_arcana\/static_shadow_arcana является static_geometry_marker_not_temporal_prediction.",
            "category": "numerology.matrix_destiny_v2.interpretation",
            "visibility": "public",
            "example": "static_geometry_marker_not_temporal_prediction",
            "status": "actual"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.activation.today",
            "type": "removed",
            "title": "Удаленная portrait activation.today",
            "description": "Удалено из immutable portrait: дневная активация является temporal-слоем и доступна только в forecast projection.",
            "category": "numerology.matrix_destiny_v2.activation",
            "visibility": "technical",
            "status": "removed",
            "removed_in": "systems.schema_version 2.2.4",
            "replacement": "systems.forecast.data.days[].numerology.matrix_destiny_activation"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.activation.meta.time_scope",
            "type": "string",
            "title": "Scope активации MatrixDestiny22",
            "description": "Фиксирует, что activation является temporal-слоем и не хранит дневные данные внутри immutable portrait.",
            "category": "numerology.matrix_destiny_v2.activation",
            "visibility": "public",
            "example": "temporal"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.activation.meta.available_in",
            "type": "string",
            "title": "Где доступна активация",
            "description": "Путь к актуальной forecast-проекции дневной активации MatrixDestiny22.",
            "category": "numerology.matrix_destiny_v2.activation",
            "visibility": "public",
            "example": "systems.forecast.data.days[].numerology.matrix_destiny_activation"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.derived_experimental.activation.meta.*",
            "type": "mixed",
            "title": "Метаданные активации MatrixDestiny22",
            "description": "Метаданные temporal-слоя активации и путь к forecast projection.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.numerology.data.matrix_destiny_v2.meta.*",
            "type": "mixed",
            "title": "Метаданные MatrixDestiny22",
            "description": "Режимы canonical\/derived, списки блоков и признаки совместимости контракта.",
            "category": "numerology.matrix_destiny_v2",
            "visibility": "public"
        },
        {
            "path": "systems.astrology",
            "type": "object",
            "title": "Астрология",
            "description": "Натальная карта, планеты, точки, аспекты, дома и лунный статус.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.**",
            "type": "mixed",
            "title": "Поле астрологии",
            "description": "Поле натальной астрологической карты, эфемерид, аспектов, домов или метаданных.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.source.*",
            "type": "mixed",
            "title": "Источник астрологии",
            "description": "Источник эфемерид натальной карты.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.meta.*",
            "type": "mixed",
            "title": "Метаданные астрологии",
            "description": "Метаданные расчета натальной карты и использованной локации.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.meta.houses_system",
            "type": "string",
            "title": "Примененная система домов",
            "description": "Реально примененная система домов. Не должна называться Placidus, если использован fallback.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.meta.houses_system_requested",
            "type": "string",
            "title": "Запрошенная система домов",
            "description": "Система домов, которую предпочитает контракт расчета. Текущее значение: Placidus.",
            "category": "astrology",
            "visibility": "public",
            "example": "Placidus"
        },
        {
            "path": "systems.astrology.data.meta.houses_system_applied",
            "type": "string",
            "title": "Фактическая система домов",
            "description": "Система домов, реально примененная расчетом: Porphyry или Equal (MC) при fallback.",
            "category": "astrology",
            "visibility": "public",
            "example": "Porphyry"
        },
        {
            "path": "systems.astrology.data.meta.houses_fallback_used",
            "type": "boolean",
            "title": "Fallback домов",
            "description": "true означает, что вместо запрошенного Placidus применена стабильная fallback-система.",
            "category": "astrology",
            "visibility": "public",
            "example": true
        },
        {
            "path": "systems.astrology.data.meta.houses_fallback_reason",
            "type": "string",
            "title": "Причина fallback домов",
            "description": "Машинно-читаемое\/человекочитаемое объяснение, почему Placidus не применен.",
            "category": "astrology",
            "visibility": "public",
            "example": "Placidus unavailable in current PHP implementation; stable fallback applied"
        },
        {
            "path": "systems.astrology.data.lunar.*",
            "type": "mixed",
            "title": "Лунный статус",
            "description": "Фаза Луны, лунный день, затмения и void-of-course для натального контекста.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.planets.*.*",
            "type": "mixed",
            "title": "Планета натальной карты",
            "description": "Положение планеты в натальной карте.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.planets.north_node",
            "type": "object",
            "title": "Северный узел",
            "description": "Канонический ключ северного лунного узла. Legacy northnode не возвращается в planets.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.planets.south_node",
            "type": "object",
            "title": "Южный узел",
            "description": "Канонический ключ южного лунного узла. Legacy southnode не возвращается в planets.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.points.*.*",
            "type": "mixed",
            "title": "Точка натальной карты",
            "description": "Положение расчетной точки натальной карты.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.aspects[].*",
            "type": "mixed",
            "title": "Аспект натальной карты",
            "description": "Поле аспекта: p1, p2, type, угол, орбис, точность, сила или тональность.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.astrology.data.houses.*.*",
            "type": "mixed",
            "title": "Дом натальной карты",
            "description": "Поле дома: номер, знак, градус и координаты.",
            "category": "astrology",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph",
            "type": "object",
            "title": "Human Design",
            "description": "Bodygraph: тип, профиль, авторитет, стратегия, центры, каналы и активации.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.**",
            "type": "mixed",
            "title": "Поле Human Design",
            "description": "Поле bodygraph: тип, профиль, авторитет, центры, каналы, активации или метаданные.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.type",
            "type": "string",
            "title": "Тип Human Design",
            "description": "Тип bodygraph: Generator, Projector, Manifestor, Manifesting Generator или Reflector.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.profile",
            "type": "string",
            "title": "Профиль Human Design",
            "description": "Профиль линий личности\/дизайна.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.authority",
            "type": "string",
            "title": "Авторитет",
            "description": "Определенный авторитет принятия решений.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.strategy",
            "type": "string",
            "title": "Стратегия",
            "description": "Стратегия типа Human Design.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.incarnation_cross",
            "type": "string",
            "title": "Инкарнационный крест",
            "description": "Итоговая строка инкарнационного креста по воротам Солнца\/Земли.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.centers.*.defined",
            "type": "boolean",
            "title": "Определенность центра",
            "description": "true означает, что центр определен активными каналами.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.channels[]",
            "type": "string",
            "title": "Канал",
            "description": "Активный канал Human Design в формате gate-gate.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.activations.personality.*.*",
            "type": "mixed",
            "title": "Активация личности",
            "description": "Ворота и линия планеты в personality-слое.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.activations.personality.north_node",
            "type": "object",
            "title": "Северный узел личности",
            "description": "Канонический ключ северного лунного узла в personality-активациях. Legacy northnode не возвращается.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.activations.personality.south_node",
            "type": "object",
            "title": "Южный узел личности",
            "description": "Канонический ключ южного лунного узла в personality-активациях. Legacy southnode не возвращается.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.activations.design.*.*",
            "type": "mixed",
            "title": "Активация дизайна",
            "description": "Ворота и линия планеты в design-слое.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.activations.design.north_node",
            "type": "object",
            "title": "Северный узел дизайна",
            "description": "Канонический ключ северного лунного узла в design-активациях. Legacy northnode не возвращается.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.activations.design.south_node",
            "type": "object",
            "title": "Южный узел дизайна",
            "description": "Канонический ключ южного лунного узла в design-активациях. Legacy southnode не возвращается.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.bodygraph.data.meta.*",
            "type": "mixed",
            "title": "Метаданные Bodygraph",
            "description": "Метод расчета, design time и контрольные градусы Солнца.",
            "category": "bodygraph",
            "visibility": "public"
        },
        {
            "path": "systems.transits",
            "type": "object",
            "title": "Транзиты",
            "description": "Транзитный срез планет и аспектов для temporal-контекста.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.**",
            "type": "mixed",
            "title": "Поле транзитов",
            "description": "Поле транзитного среза: планеты, аспекты, источник, дата или метаданные.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.date",
            "type": "string",
            "title": "UTC-дата транзитов",
            "description": "UTC-дата и время транзитного среза, рассчитанные из systems.context.temporal.target_date + target_time в локальной timezone.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.source.*",
            "type": "mixed",
            "title": "Источник транзитов",
            "description": "Источник эфемерид транзитного среза.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.planets.*.*",
            "type": "mixed",
            "title": "Планета транзитов",
            "description": "Положение планеты в транзитном срезе.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.planets.north_node",
            "type": "object",
            "title": "Северный узел транзита",
            "description": "Канонический ключ северного лунного узла в транзитах. Legacy northnode не возвращается.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.planets.south_node",
            "type": "object",
            "title": "Южный узел транзита",
            "description": "Канонический ключ южного лунного узла в транзитах. Legacy southnode не возвращается.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.aspects[].*",
            "type": "mixed",
            "title": "Аспект транзитов",
            "description": "Поле аспекта транзитного среза.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.meta.location_used.*",
            "type": "mixed",
            "title": "Локация транзитов",
            "description": "Фактически использованная локация транзитного расчета.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.transits.data.meta.*",
            "type": "mixed",
            "title": "Метаданные транзитов",
            "description": "Метаданные транзитного расчета.",
            "category": "transits",
            "visibility": "public"
        },
        {
            "path": "systems.forecast",
            "type": "object",
            "title": "Прогноз",
            "description": "Temporal-прогноз на день, неделю или месяц.",
            "category": "forecast",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.period.**",
            "type": "mixed",
            "title": "Период прогноза",
            "description": "Тип периода, даты начала\/окончания и опорный момент расчета.",
            "category": "forecast",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].date",
            "type": "string",
            "title": "Дата дня прогноза",
            "description": "Дата конкретного дня в прогнозе.",
            "category": "forecast",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].**",
            "type": "mixed",
            "title": "Поле дня прогноза",
            "description": "Поле конкретного дня прогноза: нумерология, биоритмы, лунный блок, транзиты, расширения или метаданные.",
            "category": "forecast",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.**",
            "type": "mixed",
            "title": "Нумерология дня",
            "description": "Нумерологический показатель или расширение для конкретной даты прогноза.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.day_ruler.*",
            "type": "mixed",
            "title": "Управитель дня",
            "description": "Планетарный управитель дня недели.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.solar_return_exact.*",
            "type": "mixed",
            "title": "Точный соляр",
            "description": "Поля точного солнечного возвращения для года цикла.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.solar_return_exact.natal_sun_deg",
            "type": "float",
            "title": "Натальное Солнце соляра",
            "description": "Натальная долгота Солнца, синхронизированная с systems.astrology.data.planets.sun.ecliptic_longitude_deg при наличии portrait astrology.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.solar_return_exact.natal_sun_source",
            "type": "string",
            "title": "Источник натального Солнца",
            "description": "Источник natal_sun_deg. Основной контракт: systems.astrology.data.planets.sun.ecliptic_longitude_deg.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.vedic.**",
            "type": "mixed",
            "title": "Ведическая нумерология дня",
            "description": "Temporal-ветка ведической нумерологии для дня прогноза.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.vedic.meta.sunrise_utc",
            "type": "string",
            "title": "Восход UTC",
            "description": "UTC timestamp восхода, использованный для Vedic daily day-boundary.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.vedic.meta.sunrise_local",
            "type": "string",
            "title": "Локальный восход",
            "description": "Локальный timestamp восхода в timezone temporal-контекста.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.vedic.meta.timezone",
            "type": "string",
            "title": "Timezone восхода",
            "description": "Timezone, в которой рассчитан sunrise_local и Vedic daily day-boundary.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.chaldean.**",
            "type": "mixed",
            "title": "Халдейская нумерология дня",
            "description": "Temporal-ветка халдейской нумерологии для дня прогноза.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.chaldean.meta.sunrise_utc",
            "type": "string",
            "title": "Восход UTC",
            "description": "UTC timestamp восхода, использованный для Chaldean daily day-boundary.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.chaldean.meta.sunrise_local",
            "type": "string",
            "title": "Локальный восход",
            "description": "Локальный timestamp восхода в timezone temporal-контекста.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.chaldean.meta.timezone",
            "type": "string",
            "title": "Timezone восхода",
            "description": "Timezone, в которой рассчитан sunrise_local и Chaldean daily day-boundary.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.**",
            "type": "mixed",
            "title": "Активация матрицы дня",
            "description": "Дневная активация MatrixDestiny: активные арканы, совпадения, конфликты, резонанс и состояние.",
            "category": "forecast.numerology",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.age_segment",
            "type": "object",
            "title": "Возрастной сегмент MatrixDestiny22",
            "description": "Temporal возрастной сегмент на target_date. Вынесен из immutable portrait age_cycle и используется как один из активаторов дневной активации.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.age_segment.age_at_target",
            "type": "integer",
            "title": "Возраст на target_date",
            "description": "Полный возраст субъекта на target_date forecast-дня.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": 44
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.age_segment.age_from",
            "type": "integer",
            "title": "Начало возрастного сегмента",
            "description": "Нижняя граница возрастного сегмента MatrixDestiny22 включительно.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": 40
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.age_segment.age_to",
            "type": "integer",
            "title": "Конец возрастного сегмента",
            "description": "Верхняя граница возрастного сегмента MatrixDestiny22 не включительно.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": 50
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.age_segment.node_id",
            "type": "string",
            "title": "Узел возрастного сегмента",
            "description": "node_id статического age_cycle anchor, активного на target_date.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": "right"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.age_segment.val",
            "type": "integer",
            "title": "Аркан возрастного сегмента",
            "description": "Аркан активного возрастного сегмента.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": 19
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.age_segment.label",
            "type": "string",
            "title": "Название возрастного аркана",
            "description": "Человекочитаемое название аркана возрастного сегмента.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": "Солнце"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.age_segment.source",
            "type": "string",
            "title": "Источник возрастного сегмента",
            "description": "Источник данных age_segment: matrix_destiny_v2.derived_experimental.age_cycle.anchors.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": "matrix_destiny_v2.derived_experimental.age_cycle.anchors"
        },
        {
            "path": "systems.forecast.data.days[].biorhythms.**",
            "type": "mixed",
            "title": "Биоритм дня",
            "description": "Физический, эмоциональный, интеллектуальный или средний биоритм дня.",
            "category": "forecast",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].lunar.**",
            "type": "mixed",
            "title": "Лунный блок дня",
            "description": "Фаза, лунный день, satanic-флаги, затмение и void-of-course для дня прогноза.",
            "category": "forecast.lunar",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].lunar.void_of_course_day.**",
            "type": "mixed",
            "title": "Void of course дня",
            "description": "Дневная сводка холостой Луны: окна, длительности, политика отображения и источник.",
            "category": "forecast.lunar",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].transits.**",
            "type": "mixed",
            "title": "Транзиты дня",
            "description": "Транзитные планеты, аспекты и источник для дня прогноза.",
            "category": "forecast.transits",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].transits.date",
            "type": "string",
            "title": "UTC-дата транзитов дня",
            "description": "UTC-дата и время forecast transits, рассчитанные из day date + systems.context.temporal.target_time в локальной timezone.",
            "category": "forecast.transits",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].transits.planets.north_node",
            "type": "object",
            "title": "Северный узел транзита",
            "description": "Канонический ключ северного лунного узла в forecast transits. Legacy northnode не возвращается.",
            "category": "forecast.transits",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].transits.planets.south_node",
            "type": "object",
            "title": "Южный узел транзита",
            "description": "Канонический ключ южного лунного узла в forecast transits. Legacy southnode не возвращается.",
            "category": "forecast.transits",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].space_weather.**",
            "type": "mixed",
            "title": "Космическая погода дня",
            "description": "Kp-индекс, уровень, storm scale, качество данных и режим источника.",
            "category": "forecast.space_weather",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].extensions.**",
            "type": "mixed",
            "title": "Расширение прогноза",
            "description": "Дополнительная эзотерическая или справочная ветка прогноза.",
            "category": "forecast.extensions",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].extensions.raziel_wisdom.planetary_meta.is_day",
            "type": "boolean",
            "title": "Дневной планетарный час",
            "description": "true означает, что target local datetime находится между локальным sunrise и sunset.",
            "category": "forecast.extensions",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].extensions.raziel_wisdom.planetary_meta.sunrise_utc",
            "type": "string",
            "title": "Восход Raziel UTC",
            "description": "UTC timestamp восхода, использованный для Raziel planetary hours.",
            "category": "forecast.extensions",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].extensions.raziel_wisdom.planetary_meta.sunrise_local",
            "type": "string",
            "title": "Локальный восход Raziel",
            "description": "Локальный timestamp восхода в timezone temporal-контекста для Raziel planetary hours.",
            "category": "forecast.extensions",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].extensions.raziel_wisdom.planetary_meta.timezone",
            "type": "string",
            "title": "Timezone Raziel",
            "description": "Timezone, в которой рассчитаны target_local и sunrise_local для Raziel planetary hours.",
            "category": "forecast.extensions",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].meta.**",
            "type": "mixed",
            "title": "Метаданные дня прогноза",
            "description": "Метаданные расчета дня, включая использованную локацию.",
            "category": "forecast",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].magic_schedule.**",
            "type": "mixed",
            "title": "Планетарное расписание",
            "description": "Расписание планетарных часов и периодов для дня прогноза.",
            "category": "forecast.magic",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.conflict_nodes",
            "type": "array<string>",
            "title": "Конфликтные узлы дневной активации",
            "description": "Список node_id, у которых temporal activation создала подтвержденное напряжение. Статический shadow-узел без активирующего evidence не считается конфликтом.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_scores",
            "type": "object<string,float>",
            "title": "Legacy compact node scores",
            "description": "Legacy compact signed score по node_id. Поле сохранено для обратной совместимости; для explain используйте node_score_details.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "legacy",
            "replacement": "node_score_details"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_scores_deprecated",
            "type": "boolean",
            "title": "Признак legacy node_scores",
            "description": "true означает, что node_scores сохранен только как компактный legacy net_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": true,
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details",
            "type": "object<string,object>",
            "title": "Детализация расчета узлов",
            "description": "Подробный explain-расчет по каждому node_id: activation_score, support_score, tension_score, net_score, state, evidence и breakdown правил.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.node_val",
            "type": "integer",
            "title": "Аркан узла",
            "description": "Числовое значение аркана node_id в forecast-проекции дневной активации MatrixDestiny22.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.node_label",
            "type": "string",
            "title": "Название аркана узла",
            "description": "Человекочитаемое название аркана узла в forecast-проекции дневной активации MatrixDestiny22.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.node_polarity",
            "type": "string",
            "title": "Полярность узла",
            "description": "Полярность аркана узла из MatrixDestinyDictionary: support, balanced, relational, active, dynamic, transforming, receptive или shadow.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.activation_score",
            "type": "float",
            "title": "Сила активации",
            "description": "Насколько дневные активаторы явно активируют узел.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.support_score",
            "type": "float",
            "title": "Поддерживающий вклад",
            "description": "Поддерживающий вклад совместимых дневных активаторов.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.tension_score",
            "type": "float",
            "title": "Напряжение",
            "description": "Напряжение узла, созданное только явными активирующими причинами.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.net_score",
            "type": "float",
            "title": "Итоговый баланс",
            "description": "Итоговый баланс activation_score + support_score - tension_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.state",
            "type": "string",
            "title": "Состояние узла",
            "description": "Состояние узла: neutral, resonant, supportive, tense_active или neutral_static_shadow.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence",
            "type": "array<object>",
            "title": "Положительные evidence",
            "description": "Машинно-читаемые причины поддержки или активации узла в forecast-проекции MatrixDestiny22.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence",
            "type": "array<object>",
            "title": "Отрицательные evidence",
            "description": "Машинно-читаемые причины напряжения узла. Без negative_evidence узел не должен попадать в conflict_nodes.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[]",
            "type": "object",
            "title": "Разбор вклада активатора",
            "description": "Постатейный список правил дневного активатора.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].source",
            "type": "string",
            "title": "Источник активатора",
            "description": "Код источника дневного активатора: personal_day, personal_month, personal_year, chaldean_daily, vedic_jiva, vedic_karma или age_segment.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].activator_val",
            "type": "integer",
            "title": "Аркан активатора",
            "description": "Числовое значение активатора после редукции MatrixDestiny22.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].activator_label",
            "type": "string",
            "title": "Название активатора",
            "description": "Человекочитаемое название аркана активатора.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].weight",
            "type": "float",
            "title": "Вес активатора",
            "description": "Вес источника активатора в scoring v2.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].repetition",
            "type": "integer",
            "title": "Повтор активатора",
            "description": "Количество повторений того же аркана среди дневных активаторов.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].rule",
            "type": "string",
            "title": "Правило scoring",
            "description": "Правило, по которому активатор дал вклад: exact_match, support_support или none.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].reason",
            "type": "string",
            "title": "Причина scoring",
            "description": "Машинно-читаемая причина вклада или отсутствия связи.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].activation_delta",
            "type": "float",
            "title": "Вклад активации",
            "description": "Вклад активатора в activation_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].support_delta",
            "type": "float",
            "title": "Поддерживающий вклад",
            "description": "Вклад активатора в support_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.positive_evidence[].tension_delta",
            "type": "float",
            "title": "Вклад напряжения",
            "description": "Вклад активатора в tension_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].source",
            "type": "string",
            "title": "Источник активатора",
            "description": "Код источника дневного активатора: personal_day, personal_month, personal_year, chaldean_daily, vedic_jiva, vedic_karma или age_segment.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].activator_val",
            "type": "integer",
            "title": "Аркан активатора",
            "description": "Числовое значение активатора после редукции MatrixDestiny22.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].activator_label",
            "type": "string",
            "title": "Название активатора",
            "description": "Человекочитаемое название аркана активатора.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].weight",
            "type": "float",
            "title": "Вес активатора",
            "description": "Вес источника активатора в scoring v2.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].repetition",
            "type": "integer",
            "title": "Повтор активатора",
            "description": "Количество повторений того же аркана среди дневных активаторов.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].rule",
            "type": "string",
            "title": "Правило scoring",
            "description": "Правило, по которому активатор дал вклад: exact_match, support_support или none.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].reason",
            "type": "string",
            "title": "Причина scoring",
            "description": "Машинно-читаемая причина вклада или отсутствия связи.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].activation_delta",
            "type": "float",
            "title": "Вклад активации",
            "description": "Вклад активатора в activation_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].support_delta",
            "type": "float",
            "title": "Поддерживающий вклад",
            "description": "Вклад активатора в support_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.negative_evidence[].tension_delta",
            "type": "float",
            "title": "Вклад напряжения",
            "description": "Вклад активатора в tension_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].source",
            "type": "string",
            "title": "Источник активатора",
            "description": "Код источника дневного активатора: personal_day, personal_month, personal_year, chaldean_daily, vedic_jiva, vedic_karma или age_segment.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].activator_val",
            "type": "integer",
            "title": "Аркан активатора",
            "description": "Числовое значение активатора после редукции MatrixDestiny22.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].activator_label",
            "type": "string",
            "title": "Название активатора",
            "description": "Человекочитаемое название аркана активатора.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].weight",
            "type": "float",
            "title": "Вес активатора",
            "description": "Вес источника активатора в scoring v2.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].repetition",
            "type": "integer",
            "title": "Повтор активатора",
            "description": "Количество повторений того же аркана среди дневных активаторов.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].rule",
            "type": "string",
            "title": "Правило scoring",
            "description": "Правило, по которому активатор дал вклад: exact_match, support_support или none.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].reason",
            "type": "string",
            "title": "Причина scoring",
            "description": "Машинно-читаемая причина вклада или отсутствия связи.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].activation_delta",
            "type": "float",
            "title": "Вклад активации",
            "description": "Вклад активатора в activation_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].support_delta",
            "type": "float",
            "title": "Поддерживающий вклад",
            "description": "Вклад активатора в support_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.node_score_details.*.breakdown[].tension_delta",
            "type": "float",
            "title": "Вклад напряжения",
            "description": "Вклад активатора в tension_score.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "status": "actual"
        },
        {
            "path": "systems.forecast.data.days[].numerology.matrix_destiny_activation.scoring_version",
            "type": "string",
            "title": "Версия scoring активации",
            "description": "Версия алгоритма дневного scoring. Для исправленной модели: matrix-destiny-activation-2.2.0.",
            "category": "forecast.numerology.matrix_destiny_activation",
            "visibility": "public",
            "example": "matrix-destiny-activation-2.2.0"
        },
        {
            "path": "view",
            "type": "string",
            "title": "Режим synthesis-view",
            "description": "Режим экспортного ответа synthesis: summary, explain или raw.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "summary.**",
            "type": "mixed",
            "title": "Сводка synthesis",
            "description": "Компактная сводка synthesis-view.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "health.**",
            "type": "mixed",
            "title": "Здоровье модели synthesis",
            "description": "Операционные метрики synthesis-анализа.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "domain_components.**",
            "type": "float",
            "title": "Доменный вклад",
            "description": "Нормализованный вклад домена в шкалу synthesis.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "breakdown_short.*.*[]",
            "type": "object",
            "title": "Фактор breakdown",
            "description": "Краткий список главных положительных или отрицательных факторов шкалы.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "conflicts[]",
            "type": "object",
            "title": "Конфликт synthesis",
            "description": "Детектированный конфликт с evidence.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "reliability_summary.**",
            "type": "mixed",
            "title": "Надежность synthesis",
            "description": "Расширенная диагностика надежности данных и инвариантов модели.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "model_health.**",
            "type": "mixed",
            "title": "Инварианты модели",
            "description": "Состояние инвариантов и технических проверок synthesis.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "raw_profile.**",
            "type": "mixed",
            "title": "Raw-профиль synthesis",
            "description": "Полный внутренний профиль synthesis для диагностики.",
            "category": "synthesis",
            "visibility": "technical",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.schema_version",
            "type": "string",
            "title": "Версия archetype profile",
            "description": "Версия top-level archetype_profile contract в synthesis_get_result.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.archetype_rules_version",
            "type": "string",
            "title": "Версия archetype rules",
            "description": "Версия rules registry для архетипического профиля.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.archetype_balance_hash",
            "type": "string",
            "title": "Hash archetype balancing",
            "description": "SHA-256 hash конфигурации archetype evidence balancing: rules, caps, saturation, dedupe, source priority и confidence policy.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.raw_scores",
            "type": "object<string,float>",
            "title": "Raw archetype scores",
            "description": "Архетипические scores до saturation, dedupe и family\/single caps.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.raw_scores.**",
            "type": "float",
            "title": "Raw archetype score",
            "description": "Raw score конкретного архетипа до balancing.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.scores",
            "type": "object<string,float>",
            "title": "Effective archetype scores",
            "description": "Архетипические scores после saturation, dedupe, family caps и single evidence caps.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.scores.**",
            "type": "float",
            "title": "Effective archetype score",
            "description": "Итоговый score конкретного архетипа после balancing.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[]",
            "type": "object",
            "title": "Archetype evidence",
            "description": "Evidence item, из которого построен archetype_profile.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].rule_id",
            "type": "string",
            "title": "Archetype evidence rule ID",
            "description": "Идентификатор правила archetype evidence.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].rule_version",
            "type": "string",
            "title": "Archetype evidence rule version",
            "description": "Версия правила archetype evidence.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].source",
            "type": "string",
            "title": "Archetype evidence source",
            "description": "Источник evidence в человеко- или машинно-читаемом виде.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].source_path",
            "type": "string",
            "title": "Archetype evidence source path",
            "description": "JSON-path источника evidence в расчетном payload.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].value",
            "type": "mixed",
            "title": "Archetype evidence value",
            "description": "Значение source_path, использованное правилом evidence.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].archetype_impacts",
            "type": "object<string,float>",
            "title": "Archetype impacts",
            "description": "Карта archetype => impact до умножения на effective_weight.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].evidence_family",
            "type": "string",
            "title": "Archetype evidence family",
            "description": "Семейство конкретного evidence: NUM_CORE, MATRIX_DESTINY_CANONICAL, ASTRO_NATAL, BODYGRAPH и т.п.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].family_group",
            "type": "string",
            "title": "Archetype family group",
            "description": "Агрегированная группа источника evidence: NUM_MATRIX, ASTROLOGY, BODYGRAPH, RAZIEL или OTHER.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].saturation_key",
            "type": "string",
            "title": "Archetype saturation key",
            "description": "Ключ same-symbol saturation, например arcana:19 или astro_sign:moon:libra.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].source_priority",
            "type": "integer",
            "title": "Archetype source priority",
            "description": "Приоритет источника для dedupe и saturation ordering.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].raw_weight",
            "type": "float",
            "title": "Raw archetype evidence weight",
            "description": "Вес evidence до dedupe, saturation и caps.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].saturation_factor",
            "type": "float",
            "title": "Archetype saturation factor",
            "description": "Коэффициент same-symbol saturation: 1.0, 0.5, 0.25 или 0.1.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].family_cap_factor",
            "type": "float",
            "title": "Archetype family cap factor",
            "description": "Коэффициент family cap для предотвращения доминирования одного семейства источников.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].single_cap_factor",
            "type": "float",
            "title": "Single archetype evidence cap factor",
            "description": "Коэффициент ограничения единичного archetype evidence.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].effective_weight",
            "type": "float",
            "title": "Effective archetype evidence weight",
            "description": "Итоговый вес evidence после dedupe, saturation, family cap и single evidence cap.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].is_duplicate",
            "type": "boolean",
            "title": "Duplicate archetype evidence flag",
            "description": "true, если evidence является duplicate representation и не участвует в effective scoring.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].duplicate_of",
            "type": "string|null",
            "title": "Canonical duplicate target",
            "description": "ID canonical evidence, вместо которого оставлен duplicate evidence.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].dedupe_reason",
            "type": "string|null",
            "title": "Archetype dedupe reason",
            "description": "Причина исключения duplicate evidence из effective scoring.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].confidence",
            "type": "float",
            "title": "Archetype evidence confidence",
            "description": "Confidence исходного evidence до общей confidence recalculation.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence[].rationale",
            "type": "string",
            "title": "Archetype evidence rationale",
            "description": "Краткое объяснение, почему evidence влияет на archetype_profile.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance",
            "type": "object",
            "title": "Archetype evidence balance",
            "description": "Диагностика saturation, family caps, single evidence caps, dedupe и raw\/effective shares.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.caps",
            "type": "object",
            "title": "Archetype caps",
            "description": "Конфигурация ограничений archetype evidence balancing.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.caps.max_archetype_evidence_family_share",
            "type": "float",
            "title": "Max family share",
            "description": "Максимальная доля одного family group в effective archetype evidence.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.caps.family_caps",
            "type": "object<string,float>",
            "title": "Family caps",
            "description": "Карта family_group => max effective share.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.caps.max_single_archetype_evidence_share",
            "type": "float",
            "title": "Max single evidence share",
            "description": "Максимальная доля одного evidence item в effective archetype evidence.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.caps.same_symbol_saturation",
            "type": "object<string,float>",
            "title": "Same-symbol saturation table",
            "description": "Таблица saturation factors для повторов одного символа.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.families",
            "type": "object",
            "title": "Archetype evidence families",
            "description": "Raw\/effective вес и доли по family group.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.families.**",
            "type": "mixed",
            "title": "Archetype evidence family meta",
            "description": "Метрики конкретной family group: raw_weight, effective_weight, raw_share, effective_share и counts.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.max_family_share_detected",
            "type": "float",
            "title": "Max family share detected",
            "description": "Максимальная detected effective share среди family groups после balancing.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.family_caps_applied[]",
            "type": "object",
            "title": "Family cap applied",
            "description": "Запись о примененном family cap.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.symbol_saturation_applied[]",
            "type": "object",
            "title": "Symbol saturation applied",
            "description": "Запись о примененной same-symbol saturation.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.single_evidence_caps_applied[]",
            "type": "object",
            "title": "Single evidence cap applied",
            "description": "Запись о примененном ограничении единичного evidence.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "archetype_profile.evidence_balance.deduplicated_evidence[]",
            "type": "object",
            "title": "Deduplicated archetype evidence",
            "description": "Запись о duplicate evidence, исключенном из effective scoring.",
            "category": "synthesis.archetype",
            "visibility": "public",
            "contract": "synthesis_get_result",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.status",
            "type": "string",
            "title": "Статус Synthesis++",
            "description": "Optional embedded статус блока Synthesis++ v4: ok или error. Не входит в legacy get_result по умолчанию.",
            "category": "synthesis.embedded",
            "visibility": "public",
            "example": "ok",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.schema_version",
            "type": "string",
            "title": "Версия схемы Synthesis++",
            "description": "Версия optional embedded production-контракта Synthesis++ v4. Возвращается только если synthesis явно запрошен.",
            "category": "synthesis.embedded",
            "visibility": "public",
            "example": "synthesis-4.0.0",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.calculation_version",
            "type": "string",
            "title": "Версия расчёта Synthesis++",
            "description": "Версия персонализированного алгоритма synthesis.",
            "category": "synthesis",
            "visibility": "public",
            "example": "ipsm-personalized-1.1.0",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.rules_version",
            "type": "string",
            "title": "Версия правил Synthesis++",
            "description": "Версия RuleRegistry\/mapping table для observations и архетипов.",
            "category": "synthesis",
            "visibility": "public",
            "example": "synthesis-rules-4.1.0",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.weights_hash",
            "type": "string",
            "title": "Hash правил и весов",
            "description": "SHA-256 hash правил, весов и normalization metadata; меняется при изменении mapping\/weights.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.normalization_version",
            "type": "string",
            "title": "Версия нормализации",
            "description": "Версия domain-balanced personalized normalization.",
            "category": "synthesis",
            "visibility": "public",
            "example": "domain-balanced-personalized-1.0.0",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.conflict_rules_version",
            "type": "string",
            "title": "Версия конфликтных правил",
            "description": "Версия правил conflicts\/shadow\/superpower confidence.",
            "category": "synthesis",
            "visibility": "public",
            "example": "conflict-rules-1.0.0",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.mode",
            "type": "string",
            "title": "Режим Synthesis++",
            "description": "Режим портретно-временного баланса: daily_synthesis используется текущим auto report.",
            "category": "synthesis",
            "visibility": "public",
            "example": "daily_synthesis",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.**",
            "type": "mixed",
            "title": "Архетипический профиль",
            "description": "Профиль inferred from symbolic\/esoteric data, not from PMAI questionnaire. Не является диагнозом или PMAI score.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.archetype_balance_hash",
            "type": "string",
            "title": "Hash archetype balancing",
            "description": "SHA-256 hash конфигурации archetype evidence balancing. Optional embedded path; основной synthesis_get_result path: archetype_profile.archetype_balance_hash.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.raw_scores.**",
            "type": "float",
            "title": "Raw archetype scores",
            "description": "Архетипические scores до saturation, dedupe и family\/single caps. Доступно для explain\/debug сравнения.",
            "category": "synthesis",
            "visibility": "technical",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].evidence_family",
            "type": "string",
            "title": "Archetype evidence family",
            "description": "Семейство конкретного evidence: NUM_CORE, MATRIX_DESTINY_CANONICAL, ASTRO_NATAL, BODYGRAPH и т.п.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].family_group",
            "type": "string",
            "title": "Archetype evidence family group",
            "description": "Агрегированная группа источника evidence: NUM_MATRIX, ASTROLOGY, BODYGRAPH, RAZIEL или OTHER.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].saturation_key",
            "type": "string",
            "title": "Archetype saturation key",
            "description": "Ключ same-symbol saturation, например arcana:19 или astro_sign:moon:libra.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].raw_weight",
            "type": "float",
            "title": "Raw archetype evidence weight",
            "description": "Вес evidence до dedupe, saturation и caps.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].saturation_factor",
            "type": "float",
            "title": "Archetype saturation factor",
            "description": "Коэффициент same-symbol saturation: 1.0, 0.5, 0.25 или 0.1.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].family_cap_factor",
            "type": "float",
            "title": "Archetype family cap factor",
            "description": "Коэффициент family cap для предотвращения доминирования одного семейства источников.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].single_cap_factor",
            "type": "float",
            "title": "Single archetype evidence cap factor",
            "description": "Коэффициент ограничения единичного archetype evidence.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].effective_weight",
            "type": "float",
            "title": "Effective archetype evidence weight",
            "description": "Итоговый вес evidence после dedupe, saturation, family cap и single evidence cap.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].is_duplicate",
            "type": "boolean",
            "title": "Duplicate archetype evidence flag",
            "description": "true, если evidence является duplicate representation и не участвует в effective scoring.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].duplicate_of",
            "type": "string|null",
            "title": "Canonical duplicate target",
            "description": "ID canonical evidence, вместо которого оставлен duplicate evidence.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence[].dedupe_reason",
            "type": "string|null",
            "title": "Archetype dedupe reason",
            "description": "Причина исключения duplicate evidence из effective scoring.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.archetype_profile.evidence_balance.**",
            "type": "mixed",
            "title": "Archetype evidence balance meta",
            "description": "Диагностика saturation, family caps, single evidence caps, dedupe и raw\/effective shares.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.individual_sensitivity_model.**",
            "type": "mixed",
            "title": "Модель чувствительности",
            "description": "Ограниченные modifiers шкал\/доменов с объяснимыми reasons.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.reliability_model.**",
            "type": "mixed",
            "title": "Модель надежности Synthesis++",
            "description": "Оценка качества источников, полноты данных, fallback penalties и исключенных observations.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.legacy_flat_scales.**",
            "type": "float",
            "title": "Legacy flat шкалы",
            "description": "Старый flat result только для explain\/debug сравнения.",
            "category": "synthesis",
            "visibility": "technical",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.base_balanced_scales.**",
            "type": "float",
            "title": "Base balanced шкалы",
            "description": "Результат после domain-balanced aggregation, до персонализации.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.personalized_scales.**",
            "type": "float",
            "title": "Personalized шкалы",
            "description": "Основной production result после ограниченных personalized modifiers.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.personalization_delta.**",
            "type": "float",
            "title": "Delta персонализации",
            "description": "Разница personalized_scales - base_balanced_scales по каждой шкале.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.domain_scores.**",
            "type": "mixed",
            "title": "Domain scores",
            "description": "Внутридоменные score по scale\/domain до междоменной сборки.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.domain_contributions.**",
            "type": "mixed",
            "title": "Domain contributions",
            "description": "Итоговые доменные вклады после domain weights\/relevance.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.observations[].rule_id",
            "type": "string",
            "title": "ID правила observation",
            "description": "Версионированный ID правила, породившего observation.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.observations[].rule_version",
            "type": "string",
            "title": "Версия правила observation",
            "description": "Версия rule_id для explain\/debug трассировки.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.observations[].personalization_reasons[]",
            "type": "object",
            "title": "Причины персонализации",
            "description": "Объяснение modifiers и cap применения для observation.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.superpower.**",
            "type": "mixed",
            "title": "Superpower selector",
            "description": "Выбор superpower по score, margin, balance, reliability, conflicts и personalization delta.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.conflicts[]",
            "type": "object",
            "title": "Конфликт Synthesis++ v4",
            "description": "Конфликтная модель как часть индивидуальности, не ошибка и не диагноз.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.shadow_flags[]",
            "type": "object",
            "title": "Shadow flags",
            "description": "Потенциальные перегибы доминирующих архетипов, не диагноз.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "systems.synthesis.data.model_health.**",
            "type": "mixed",
            "title": "Model health Synthesis++ v4",
            "description": "Диагностика domain caps, reliability, drift, excluded observations и warnings.",
            "category": "synthesis",
            "visibility": "public",
            "contract": "embedded_synthesis_optional",
            "status": "optional",
            "condition": "returned only when synthesis is explicitly requested via systems[]=synthesis or a future include_synthesis=1 mode",
            "not_part_of": [
                "legacy_get_result"
            ]
        },
        {
            "path": "cached",
            "type": "boolean",
            "title": "Ответ из кэша",
            "description": "true означает, что данные были получены из кэша.",
            "category": "hourly_forecast",
            "visibility": "technical"
        },
        {
            "path": "data.meta.**",
            "type": "mixed",
            "title": "Метаданные hourly forecast",
            "description": "Метаданные синхронного почасового geocentric-прогноза.",
            "category": "hourly_forecast",
            "visibility": "public"
        },
        {
            "path": "data.hours[].**",
            "type": "mixed",
            "title": "Час hourly forecast",
            "description": "Почасовая точка прогноза Луны и планет.",
            "category": "hourly_forecast",
            "visibility": "public"
        },
        {
            "path": "data.hours[].moon.**",
            "type": "mixed",
            "title": "Луна в hourly forecast",
            "description": "Геоцентрическое положение Луны для часа.",
            "category": "hourly_forecast",
            "visibility": "public"
        },
        {
            "path": "data.hours[].planets.**",
            "type": "mixed",
            "title": "Планета в hourly forecast",
            "description": "Геоцентрическое положение планеты для часа.",
            "category": "hourly_forecast",
            "visibility": "public"
        },
        {
            "path": "data.hours[].moon_aspects[].*",
            "type": "mixed",
            "title": "Лунный аспект hourly forecast",
            "description": "Аспект Луны к планете в пределах орбиса.",
            "category": "hourly_forecast",
            "visibility": "public"
        },
        {
            "path": "data.hours[].lunar.**",
            "type": "mixed",
            "title": "Лунный статус hourly forecast",
            "description": "Фаза, лунный день и void-of-course для часа.",
            "category": "hourly_forecast",
            "visibility": "public"
        }
    ],
    "x-response-field-dictionary-source": "config\/response_field_dictionary.php"
}