{
  "schema": "MAKNOW_VISUALS_v1.0",
  "lesson_id": "NET-003",
  "required": true,
  "assets": [
    {
      "asset_id": "NET-003-ASSET-TABLE",
      "learning_question": "Can a reviewer explain exactly what schema/data behavior changes, prove it on a disposable database, and show how concurrency and deployment risks are handled before any shared database is modified?",
      "source_data_spec": "Context / Entity / Provider / Query / Tracking / Transaction / Concurrency Token / Migration / Operation / Pending Model Change / Data-loss Warning / Deployment Strategy / Locking / Fixture Test / Conflict Test / Review / State",
      "interaction_states": [
        "baseline",
        "mutated",
        "unknown-or-disputed",
        "bounded-decision"
      ],
      "placement_semantic_anchor": "NET-003:worked_examples",
      "production_brief": "Render EF Core Data Access, Migration and Concurrency Evidence Ledger v1 as a compact evidence table with explicit state labels.",
      "asset_lock_state": "SPEC_LOCKED"
    },
    {
      "asset_id": "NET-003-ASSET-FLOW",
      "learning_question": "Which gate must pass before the disposable verification?",
      "source_data_spec": "model + provider → query/change-tracking contract → migration diff + snapshot → inspect operations + pending changes → disposable DB apply/test → concurrency mutation → deployment review → READY / REPAIR / HOLD",
      "interaction_states": [
        "evidence",
        "gate",
        "hold",
        "decision"
      ],
      "placement_semantic_anchor": "NET-003:mental_model",
      "production_brief": "Render as a left-to-right decision flow with explicit non-success branches.",
      "asset_lock_state": "SPEC_LOCKED"
    }
  ],
  "accessibility_contract": "Every visual must have a text-equivalent explanation of states, arrows, quantities and exceptions; color alone must never encode PASS/FAIL.",
  "rendered_asset": "derived_text/visuals/NET-003-ASSET-FLOW.svg",
  "fallback": {
    "fa-IR": "معادل متنی نمودار چنین است: مدل و provider را مشخص کنید؛ خواندن و tracking را بسنجید؛ snapshot، عملیات و تاریخچه را مقایسه کنید؛ تست یک‌بارمصرف را اجرا کنید؛ تعارض را حل کنید؛ شواهد برنامهٔ استقرار را بازبینی کنید. شاهد مفقود یا کهنه به `HOLD` می‌رسد. شاهد منفی به تعمیر و اجرای دوباره نیاز دارد و تا آن زمان `HOLD` می‌ماند. شواهد کامل فقط در قرارداد مصنوعی این تمرین، `READY_FOR_REVIEW` می‌دهند. این وضعیت‌ها طراحی آموزشی MAKNOW هستند و مجوز استقرار مایکروسافت نیستند.\n<!-- /MN:SECTION -->",
    "en-US": "The flow's text equivalent is: bind model and provider; inspect query and tracking; compare snapshot, operations and history; run disposable tests; resolve the observed conflict; review deployment evidence. Missing or stale evidence means `HOLD`; negative evidence means repair and rerun while retaining `HOLD`; complete evidence permits `READY_FOR_REVIEW` only within this synthetic exercise. These states are MAKNOW design choices, not Microsoft deployment approval.\n<!-- /MN:SECTION -->"
  }
}
