{
  "contract_version": "odin.v1.1",
  "semantics": "ostrovok.contract.w5.3",
  "supported_contract_versions": [
    "odin.v1.1"
  ],
  "response_id": "RESP-0002",
  "in_reply_to_action_id": "DEMO-ACT-01",
  "evaluated_at": "2026-11-01T09:00:00Z",
  "session_id": "DEMO-S1",
  "trip_id": "TRIP-0001",
  "trip_version": 2,
  "state": "COMPARE",
  "state_record": {
    "trip_id": "TRIP-0001",
    "trip_version": 2,
    "state": "COMPARE",
    "routing": "ASSESS_OPTIONS",
    "recognition_state": "resolved",
    "initial_goal": {
      "task_id": "TASK-TRIP-0001",
      "goal_revision": 1,
      "kind": "undetermined",
      "join": "UNRESOLVED",
      "declared_scope": "unresolved",
      "required_component_kinds": [],
      "criterion_ref": "criterion:default",
      "origin": "agent_assumption",
      "basis_action_ref": "DEMO-ACT-01"
    },
    "current_goal": {
      "task_id": "TASK-TRIP-0001",
      "goal_revision": 2,
      "kind": "assess",
      "join": "ALL",
      "declared_scope": "assessment",
      "required_component_kinds": [
        "lodging"
      ],
      "criterion_ref": "criterion:default",
      "origin": "user_explicit",
      "basis_action_ref": "DEMO-ACT-01"
    },
    "request": {
      "origin_id": null,
      "destination_id": null,
      "check_in": "2027-02-10",
      "check_out": "2027-02-15",
      "month": null,
      "adults": 2,
      "children_ages": [],
      "rooms": 1,
      "budget_minor": null,
      "budget_scope": "unresolved",
      "outside_allocation_minor": null,
      "pet_count": null,
      "room_immediate_required": false,
      "breakfast_all_required": true,
      "free_cancel_required": false,
      "required_capabilities": [],
      "requirements": [
        {
          "requirement_id": "REQ-meal_plan_min",
          "key": "meal_plan_min",
          "strength": "hard",
          "value_state": "known",
          "origin": "user_explicit",
          "subject_refs": [],
          "scope": "stay",
          "value": "BB"
        }
      ],
      "externally_purchased": [],
      "result_scope": {
        "kind": "assessment",
        "component_kinds": [
          "lodging"
        ],
        "transport_applicability": "not_applicable",
        "purpose": "evaluate_only",
        "basis_action_ref": "DEMO-ACT-01",
        "fixed_component_refs": [],
        "candidate_offer_refs": [
          "P-SHE-004-STD_DBL-BB_FLEX",
          "P-SHE-001-GH_DBL-RO_FLEX"
        ]
      },
      "missing_for_search": [
        "destination"
      ]
    },
    "selected_plan": null,
    "cart_snapshot_id": null,
    "consent_ref": null,
    "pending_operation": null,
    "advertising": "OFF",
    "goal_lineage": [
      {
        "previous_goal": {
          "task_id": "TASK-TRIP-0001",
          "goal_revision": 1,
          "kind": "undetermined",
          "join": "UNRESOLVED",
          "declared_scope": "unresolved",
          "required_component_kinds": [],
          "criterion_ref": "criterion:default",
          "origin": "agent_assumption",
          "basis_action_ref": "DEMO-ACT-01"
        },
        "next_goal": {
          "task_id": "TASK-TRIP-0001",
          "goal_revision": 2,
          "kind": "assess",
          "join": "ALL",
          "declared_scope": "assessment",
          "required_component_kinds": [
            "lodging"
          ],
          "criterion_ref": "criterion:default",
          "origin": "user_explicit",
          "basis_action_ref": "DEMO-ACT-01"
        },
        "basis_action_ref": "DEMO-ACT-01",
        "initial_goal_sha256": "6755a4896b849c5b746de0cdc412b6f832eaccde82390e560f6c034a29f9eab8",
        "reason": "по словам пользователя"
      }
    ]
  },
  "message": "Сравнил ваши два тарифа: завтрак на обоих есть только в одном.",
  "intent_summary": "10.02–15.02, 2 взр., результат: assessment",
  "questions": [],
  "directions": [],
  "options": [
    {
      "option_id": "OPTION-c3c1822a98647ed201a7141d",
      "option_basis_sha256": "c3c1822a98647ed201a7141dadeb30a4c65294b8715abb984802a82927fe1b07",
      "trip_version": 2,
      "suitability": "ready",
      "result_scope": {
        "kind": "assessment",
        "component_kinds": [
          "lodging"
        ],
        "transport_applicability": "not_applicable",
        "purpose": "evaluate_only",
        "basis_action_ref": "DEMO-ACT-01",
        "fixed_component_refs": [],
        "candidate_offer_refs": [
          "P-SHE-004-STD_DBL-BB_FLEX",
          "P-SHE-001-GH_DBL-RO_FLEX"
        ]
      },
      "stay": {
        "offer_id": "P-SHE-004-STD_DBL-BB_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307",
        "property_id": "P-SHE-004",
        "property_name": "Отель «Тёплый очаг»",
        "property_kind": "hotel",
        "stars": 3,
        "review_score": 9.2,
        "room_id": "P-SHE-004-STD_DBL",
        "room_name": "Стандарт, одна двуспальная кровать",
        "beds": [
          "1×double"
        ],
        "rate_id": "P-SHE-004-STD_DBL-BB_FLEX",
        "rate_name": "Завтрак, гибкий",
        "offer_revision": "r-c5dbf102a307",
        "meal_plan": "BB",
        "cancellation": "Бесплатная отмена до 07.02.2027 12:00 (UTC+0700), затем штраф: first_night",
        "free_cancellation_until": "2027-02-07T12:00:00+07:00",
        "payment_timing": "at_property",
        "check_in": "2027-02-10",
        "check_out": "2027-02-15",
        "checkin_from": "14:00",
        "checkout_until": "11:00",
        "highlights": {
          "lift_walk_min": "18",
          "ski_in_ski_out": "False",
          "ski_storage": "True",
          "ski_rental_onsite": "False",
          "kids_club": "False",
          "pets_allowed": "False",
          "kitchen_stove": "False"
        }
      },
      "outbound": null,
      "inbound": null,
      "ground": [],
      "plan": {
        "option_ref": "OPTION-c3c1822a98647ed201a7141d",
        "offer_ref": "P-SHE-004-STD_DBL-BB_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307",
        "route_ref": null,
        "selected_entries": [
          {
            "component_id": "P-SHE-004-STD_DBL-BB_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307",
            "revision": "r-c5dbf102a307",
            "quantity": 1,
            "scope": "2 взр., 5 ноч.",
            "source_ref": "P-SHE-004-STD_DBL-BB_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307:stay",
            "new_or_external": "new",
            "kind": "stay",
            "label": "Проживание, завтрак, гибкий",
            "amount_minor": 4080000,
            "unknown_reason": null,
            "payment_timing": "at_property",
            "selection_status": "selected"
          }
        ],
        "money": {
          "known_selected_subtotal_minor": 4080000,
          "selected_total_minor": 4080000,
          "full_expense_total_minor": null,
          "outside_allocation_minor": null,
          "externally_purchased_minor": null,
          "reserve_minor": 0,
          "due_now_minor": 0,
          "expense_due_now_minor": 0,
          "reserve_due_now_minor": 0,
          "reserve_later_minor": 0,
          "due_later_minor": 4080000,
          "currency": "RUB",
          "completeness": "COMPLETE_FOR_DECLARED_SCOPE",
          "scope": "proposed_total",
          "within_budget": true
        },
        "result_scope": {
          "kind": "assessment",
          "component_kinds": [
            "lodging"
          ],
          "transport_applicability": "not_applicable",
          "purpose": "evaluate_only",
          "basis_action_ref": "DEMO-ACT-01",
          "fixed_component_refs": [],
          "candidate_offer_refs": [
            "P-SHE-004-STD_DBL-BB_FLEX",
            "P-SHE-001-GH_DBL-RO_FLEX"
          ]
        }
      },
      "checks": [
        {
          "check_id": "CHK-001-availability",
          "rule_id": "availability",
          "status": "PASS",
          "critical": true,
          "scope_refs": [
            "P-SHE-004-STD_DBL-BB_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307"
          ],
          "reason": "Есть наличие на даты",
          "evidence_refs": []
        },
        {
          "check_id": "CHK-002-capacity",
          "rule_id": "capacity",
          "status": "PASS",
          "critical": true,
          "scope_refs": [
            "P-SHE-004-STD_DBL-BB_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307"
          ],
          "reason": "Вмещает 3 гостей",
          "evidence_refs": []
        },
        {
          "check_id": "CHK-003-meal_plan_min",
          "rule_id": "meal_plan_min",
          "status": "PASS",
          "critical": true,
          "scope_refs": [
            "P-SHE-004-STD_DBL-BB_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307"
          ],
          "reason": "Тариф BB покрывает всех гостей",
          "evidence_refs": []
        },
        {
          "check_id": "CHK-004-TRANSPORT_APPLICABILITY",
          "rule_id": "TRANSPORT_APPLICABILITY",
          "status": "NOT_APPLICABLE",
          "critical": false,
          "scope_refs": [
            "P-SHE-004-STD_DBL-BB_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307"
          ],
          "reason": "Область «assessment» (основание: DEMO-ACT-01) — дорога не подбирается",
          "evidence_refs": []
        }
      ],
      "fits": [
        "Тариф BB покрывает всех гостей"
      ],
      "tradeoffs": [
        "Дороже самого дешёвого из показанных вариантов на 7 674 ₽ (вся корзина)",
        "До подъёмника 18 мин пешком"
      ],
      "unknowns": [],
      "pinned": false,
      "data_mode": "SYNTHETIC"
    },
    {
      "option_id": "OPTION-5caaadc4ac2289e38f0583e4",
      "option_basis_sha256": "5caaadc4ac2289e38f0583e4614476097a2b115a7932a60eb7d6311ad15d196e",
      "trip_version": 2,
      "suitability": "excluded",
      "result_scope": {
        "kind": "assessment",
        "component_kinds": [
          "lodging"
        ],
        "transport_applicability": "not_applicable",
        "purpose": "evaluate_only",
        "basis_action_ref": "DEMO-ACT-01",
        "fixed_component_refs": [],
        "candidate_offer_refs": [
          "P-SHE-004-STD_DBL-BB_FLEX",
          "P-SHE-001-GH_DBL-RO_FLEX"
        ]
      },
      "stay": {
        "offer_id": "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307",
        "property_id": "P-SHE-001",
        "property_name": "Гостевой дом «Фирн»",
        "property_kind": "guest_house",
        "stars": null,
        "review_score": 7.0,
        "room_id": "P-SHE-001-GH_DBL",
        "room_name": "Двухместный номер",
        "beds": [
          "1×double"
        ],
        "rate_id": "P-SHE-001-GH_DBL-RO_FLEX",
        "rate_name": "Без питания, гибкий",
        "offer_revision": "r-c5dbf102a307",
        "meal_plan": "RO",
        "cancellation": "Бесплатная отмена до 03.02.2027 12:00 (UTC+0700), затем штраф: first_night",
        "free_cancellation_until": "2027-02-03T12:00:00+07:00",
        "payment_timing": "deposit_now",
        "check_in": "2027-02-10",
        "check_out": "2027-02-15",
        "checkin_from": "13:00",
        "checkout_until": "11:00",
        "highlights": {
          "lift_walk_min": "18",
          "ski_in_ski_out": "False",
          "ski_storage": "True",
          "ski_rental_onsite": "False",
          "kids_club": "True",
          "pets_allowed": "False",
          "kitchen_stove": "False"
        }
      },
      "outbound": null,
      "inbound": null,
      "ground": [],
      "plan": {
        "option_ref": "OPTION-5caaadc4ac2289e38f0583e4",
        "offer_ref": "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307",
        "route_ref": null,
        "selected_entries": [
          {
            "component_id": "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307",
            "revision": "r-c5dbf102a307",
            "quantity": 1,
            "scope": "2 взр., 5 ноч.",
            "source_ref": "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307:deposit",
            "new_or_external": "new",
            "kind": "stay",
            "label": "Проживание — предоплата",
            "amount_minor": 993800,
            "unknown_reason": null,
            "payment_timing": "now",
            "selection_status": "selected"
          },
          {
            "component_id": "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307",
            "revision": "r-c5dbf102a307",
            "quantity": 1,
            "scope": "2 взр., 5 ноч.",
            "source_ref": "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307:rest",
            "new_or_external": "new",
            "kind": "stay",
            "label": "Проживание — доплата при заезде",
            "amount_minor": 2318800,
            "unknown_reason": null,
            "payment_timing": "at_property",
            "selection_status": "selected"
          }
        ],
        "money": {
          "known_selected_subtotal_minor": 3312600,
          "selected_total_minor": 3312600,
          "full_expense_total_minor": null,
          "outside_allocation_minor": null,
          "externally_purchased_minor": null,
          "reserve_minor": 0,
          "due_now_minor": 993800,
          "expense_due_now_minor": 993800,
          "reserve_due_now_minor": 0,
          "reserve_later_minor": 0,
          "due_later_minor": 2318800,
          "currency": "RUB",
          "completeness": "COMPLETE_FOR_DECLARED_SCOPE",
          "scope": "proposed_total",
          "within_budget": true
        },
        "result_scope": {
          "kind": "assessment",
          "component_kinds": [
            "lodging"
          ],
          "transport_applicability": "not_applicable",
          "purpose": "evaluate_only",
          "basis_action_ref": "DEMO-ACT-01",
          "fixed_component_refs": [],
          "candidate_offer_refs": [
            "P-SHE-004-STD_DBL-BB_FLEX",
            "P-SHE-001-GH_DBL-RO_FLEX"
          ]
        }
      },
      "checks": [
        {
          "check_id": "CHK-001-availability",
          "rule_id": "availability",
          "status": "FAIL",
          "critical": true,
          "scope_refs": [
            "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307"
          ],
          "reason": "Нет наличия на даты",
          "evidence_refs": []
        },
        {
          "check_id": "CHK-002-capacity",
          "rule_id": "capacity",
          "status": "PASS",
          "critical": true,
          "scope_refs": [
            "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307"
          ],
          "reason": "Вмещает 3 гостей",
          "evidence_refs": []
        },
        {
          "check_id": "CHK-003-meal_plan_min",
          "rule_id": "meal_plan_min",
          "status": "FAIL",
          "critical": true,
          "scope_refs": [
            "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307"
          ],
          "reason": "Тариф RO не включает нужное питание",
          "evidence_refs": []
        },
        {
          "check_id": "CHK-004-TRANSPORT_APPLICABILITY",
          "rule_id": "TRANSPORT_APPLICABILITY",
          "status": "NOT_APPLICABLE",
          "critical": false,
          "scope_refs": [
            "P-SHE-001-GH_DBL-RO_FLEX@2027-02-10..2027-02-15/2a[]x1#r-c5dbf102a307"
          ],
          "reason": "Область «assessment» (основание: DEMO-ACT-01) — дорога не подбирается",
          "evidence_refs": []
        }
      ],
      "fits": [],
      "tradeoffs": [
        "До подъёмника 18 мин пешком"
      ],
      "unknowns": [],
      "pinned": false,
      "data_mode": "SYNTHETIC"
    }
  ],
  "preview": null,
  "change_summary": {
    "applied": true,
    "old_trip_version": 1,
    "new_trip_version": 2,
    "changed_fields": [
      "dates",
      "party",
      "requirement:meal_plan_min",
      "result_scope"
    ],
    "affected_refs": [
      "dates",
      "party",
      "requirement:meal_plan_min",
      "result_scope"
    ],
    "invalidated_refs": [],
    "preserved_refs": [],
    "consent_revoked": false,
    "recheck": [
      "result_scope",
      "requirement:meal_plan_min",
      "capacity",
      "room_rate",
      "prices",
      "cancellation",
      "availability",
      "schedule",
      "services"
    ],
    "reason": "applied change"
  },
  "checks": [],
  "warnings": [],
  "allowed_actions": [
    "MESSAGE",
    "CHANGE",
    "REVIEW",
    "STOP",
    "SELECT_OPTION",
    "PIN_OPTION"
  ],
  "data_mode": "SYNTHETIC",
  "snapshot": null,
  "consent": null,
  "operation": null,
  "error": null,
  "simulation_notice": "Оформление — имитация, реальные бронирования и платежи не выполняются."
}
