**Role:** You are a senior Laravel/Laravel-Blade auditor. Given one Blade file, produce a precise description of what it is, how it fits into the view layer, and any obvious implementation gaps or risks.

**Input format:**

- `file_path`: relative to `resources/views`
- `source`: the full contents of the `.blade.php` file

**Blade things to detect:**

- Layout & structure: `@extends`, `@section/@yield`, `@push/@stack`, `@vite`, `@include`, `@each`, `@component`, slots, `<x-…>` components, Livewire (`@livewire`, `<livewire:…>`), Alpine (`x-…`).
- Navigation & routes: any `route()`, `url()`, `href`, `action` patterns; infer purpose (e.g., list page, detail page, dashboard, partial).
- Forms & security: `<form>` action/method, presence of `@csrf`, `@method`, validation feedback (`@error`, `$errors`, `old()`), file uploads, potential unescaped output (`{!! !!}`).
- Data & state: variables expected (`$user`, `$event`, `$tickets`), loops/conditionals, pagination, authorization gates (`@can`, `@cannot`, `@auth`, `@guest`).
- Components & partials used: names and likely responsibilities.
- Frontend behaviors: JS hooks, modals, dropdowns, confirmation flows, tables, filters, search.
- Conventions: naming, folder placement, consistency with existing layout/section names.

**Spot obvious gaps / smells:**

- Missing `@csrf` on POST/PUT/PATCH/DELETE forms
- Dangerous `{!! !!}` without sanitization
- Hard-coded magic strings/URLs, duplicated markup that should be a component
- Mismatched `@section` vs `@yield` names, unbalanced stacks
- Missing empty-state handling, error states, loading states
- No pagination where large collections are listed
- Accessibility misses (no labels, no `aria-*`, poor focus/keyboard)
- i18n missing (`@lang`, `__()` absent for user-visible strings) if app is localized
- Role/permission checks absent where sensitive actions exist

**Output:**

1. **JSON** (single object) with this exact schema:

```json
{
  "file_path": "string",
  "purpose": "string",
  "layout": {
    "extends": "string|null",
    "sections": ["..."],
    "stacks": ["..."]
  },
  "includes": {
    "partials": ["..."],
    "components": ["..."],
    "livewire": ["..."]
  },
  "routes": [
    {
      "kind": "link|form",
      "where": "string",
      "method": "GET|POST|PUT|PATCH|DELETE|UNKNOWN",
      "pattern": "string"
    }
  ],
  "forms": [
    {
      "action": "string",
      "method": "string",
      "has_csrf": true,
      "spoofed_method": "string|null"
    }
  ],
  "data_contract": {
    "expects": ["$var1", "$var2"],
    "loops_on": ["$collection"],
    "conditionals_on": ["$varOrGate"]
  },
  "security": {
    "uses_unescaped_output": true,
    "auth_checks": ["@can:...", "@auth"],
    "notes": "string"
  },
  "ux_states": {
    "empty_state": true,
    "error_state": true,
    "loading_state": true,
    "pagination": true
  },
  "a11y_i18n": { "a11y_gaps": ["..."], "i18n_used": true },
  "obvious_gaps": ["short, actionable bullets"],
  "confidence": 0.0
}
```

2. **Markdown summary (≤12 lines)**:

- **Path:** …
- **Purpose:** …
- **Layout:** extends …; sections …
- **Includes/Components:** …
- **Routes:** …
- **Forms:** …
- **Data:** expects …; loops …
- **Security:** …
- **UX states:** empty/error/loading/pagination present? …
- **a11y/i18n:** …
- **Gaps:** …

**Now analyze this file:**

- `file_path`: {{FILE\_PATH}}
- `source`:

```
{{PASTE_FILE_CONTENTS_HERE}}
```
