{
  "schema": "MAKNOW_SOURCES_v1.0",
  "lesson_id": "NET-002",
  "sources": [
    {
      "source_id": "MINAPI",
      "source_class": "PRIMARY_OFFICIAL",
      "locator": "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-10.0",
      "claim_boundary": "Microsoft ASP.NET Core 10 Minimal APIs reference for routing, binding, responses, filters, authorization and related API mechanics.",
      "freshness_class": "TOOL_VOLATILE",
      "retrieved_at": "2026-09-03",
      "review_due": "2026-10-18",
      "rechecked_at": "2026-09-12",
      "stage_live_refresh": true
    },
    {
      "source_id": "OPENAPI10",
      "source_class": "PRIMARY_OFFICIAL",
      "locator": "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/openapi/aspnetcore-openapi?view=aspnetcore-10.0",
      "claim_boundary": "Microsoft documentation for built-in OpenAPI generation in ASP.NET Core, including .NET 10 OpenAPI 3.1 support.",
      "freshness_class": "TOOL_VOLATILE",
      "retrieved_at": "2026-09-03",
      "review_due": "2026-10-18",
      "rechecked_at": "2026-09-12",
      "stage_live_refresh": true
    },
    {
      "source_id": "APIERROR",
      "source_class": "PRIMARY_OFFICIAL",
      "locator": "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/error-handling-api?view=aspnetcore-10.0",
      "claim_boundary": "Microsoft guidance for API exception handling and Problem Details behavior in ASP.NET Core.",
      "freshness_class": "TOOL_VOLATILE",
      "retrieved_at": "2026-09-03",
      "review_due": "2026-10-18",
      "rechecked_at": "2026-09-12",
      "stage_live_refresh": true
    },
    {
      "source_id": "AUTH",
      "locator": "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/security?view=aspnetcore-10.0",
      "source_class": "PRIMARY_OFFICIAL",
      "claim_boundary": "Identity, policies and middleware",
      "rechecked_at": "2026-09-12",
      "review_due": "2026-10-18"
    },
    {
      "source_id": "INTEGRATION",
      "locator": "https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-10.0",
      "source_class": "PRIMARY_OFFICIAL",
      "claim_boundary": "WebApplicationFactory and disposable test host",
      "rechecked_at": "2026-09-12",
      "review_due": "2026-10-18"
    },
    {
      "source_id": "CONTROLLERS",
      "locator": "https://learn.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-10.0",
      "source_class": "PRIMARY_OFFICIAL",
      "claim_boundary": "Controller conventions and default 400",
      "rechecked_at": "2026-09-12",
      "review_due": "2026-10-18"
    },
    {
      "source_id": "VALIDATION",
      "locator": "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/validation?view=aspnetcore-10.0",
      "source_class": "PRIMARY_OFFICIAL",
      "claim_boundary": "Minimal API validation in .NET 10",
      "rechecked_at": "2026-09-12",
      "review_due": "2026-10-18"
    },
    {
      "source_id": "PROBLEM",
      "locator": "https://www.rfc-editor.org/rfc/rfc9457.html",
      "source_class": "PRIMARY_OFFICIAL",
      "claim_boundary": "Problem Details fields and extensions, not exercise whitelist",
      "rechecked_at": "2026-09-12",
      "review_due": "2026-10-18"
    },
    {
      "source_id": "HTTP",
      "locator": "https://httpwg.org/specs/rfc9110.html",
      "source_class": "PRIMARY_OFFICIAL",
      "claim_boundary": "HTTP status and idempotent method semantics",
      "rechecked_at": "2026-09-12",
      "review_due": "2026-10-18"
    },
    {
      "source_id": "OAS",
      "locator": "https://spec.openapis.org/oas/v3.1.1.html",
      "source_class": "PRIMARY_OFFICIAL",
      "claim_boundary": "OpenAPI document syntax, not runtime verification",
      "rechecked_at": "2026-09-12",
      "review_due": "2026-10-18"
    }
  ],
  "source_identity_mutated": false,
  "claim_scope_expanded": false
}
