{
  "expectations": [
    {
      "text": "Plik zaczyna się od <?xml version=\"1.0\" encoding=\"utf-8\"?>",
      "passed": true,
      "evidence": "Linia 1: <?xml version=\"1.0\" encoding=\"utf-8\"?>"
    },
    {
      "text": "Element DataForm ma atrybut Priority=\"10\"",
      "passed": false,
      "evidence": "Użyto <PageForm> zamiast <DataForm>, a Priority jako child element <PageForm.Priority>10</PageForm.Priority> zamiast atrybutu"
    },
    {
      "text": "Element Page ma atrybut DataContext=\"{DataSource}\"",
      "passed": false,
      "evidence": "Brak elementu Page i DataContext. Użyto <PageForm.Groups> zamiast <Page DataContext=...>"
    },
    {
      "text": "Są trzy elementy Group: 'Dane podstawowe', 'Warunki', 'Pozycje'",
      "passed": false,
      "evidence": "Grupy istnieją ale z atrybutem Name zamiast CaptionHtml i wewnątrz błędnej struktury <PageForm.Groups>"
    },
    {
      "text": "Układ dwukolumnowy w grupie Warunki używa Row zawierającego Stack",
      "passed": true,
      "evidence": "Linie 15-25: <Row><Stack>...</Stack><Stack>...</Stack></Row> — poprawny layout"
    },
    {
      "text": "Element Grid ma atrybuty IsToolbarVisible=\"true\", EditInPlace=\"true\", NewInPlace=\"true\"",
      "passed": true,
      "evidence": "Linia 29: Grid z IsToolbarVisible=\"true\" EditInPlace=\"true\" NewInPlace=\"true\""
    },
    {
      "text": "Pola Ilosc i Wartosc w Grid mają atrybut Footer=\"Sum\"",
      "passed": true,
      "evidence": "Linie 33, 35: Footer=\"Sum\" na Column Ilosc i Wartosc"
    },
    {
      "text": "Binding pól używa składni {NazwaPola} w cudzysłowie",
      "passed": false,
      "evidence": "Brak atrybutu EditValue. Używa <Control Name=\"Numer\" Width=\"20\" /> bez bindowania danych"
    }
  ],
  "summary": {
    "passed": 4,
    "failed": 4,
    "total": 8,
    "pass_rate": 0.5
  }
}
