{
  "lesson_id": "PLN-024",
  "evaluation_time": "2026-09-16T08:00:00Z",
  "cases": [
    {
      "case_id": "github_healthy_allow",
      "account_id": "gh-app-A",
      "platform_id": "github",
      "auth_state": "VALID",
      "permission_state": "ALLOWED",
      "account_restriction_state": "NONE",
      "quota_model": "PRIMARY",
      "quota_bucket": "core",
      "method_or_operation": "GET /repos",
      "quota_cost": 1,
      "limit_value": 5000,
      "remaining_value": 4200,
      "reset_at": "2026-09-16T09:00:00Z",
      "retry_after": null,
      "rate_limit_class": "PRIMARY",
      "http_status": 200,
      "provider_error_code": null,
      "evidence_retrieved_at": "2026-09-16T07:58:00Z",
      "provenance_ref": "src://GH-RATE",
      "bucket_model_current": true
    },
    {
      "case_id": "github_primary_defer",
      "account_id": "gh-app-A",
      "platform_id": "github",
      "auth_state": "VALID",
      "permission_state": "ALLOWED",
      "account_restriction_state": "NONE",
      "quota_model": "PRIMARY",
      "quota_bucket": "core",
      "method_or_operation": "POST /issues",
      "quota_cost": 5,
      "limit_value": 5000,
      "remaining_value": 0,
      "reset_at": "2026-09-16T09:00:00Z",
      "retry_after": null,
      "rate_limit_class": "PRIMARY",
      "http_status": 403,
      "provider_error_code": "rate_limit_exceeded",
      "evidence_retrieved_at": "2026-09-16T07:58:00Z",
      "provenance_ref": "src://GH-RATE",
      "bucket_model_current": true
    },
    {
      "case_id": "github_secondary_retry_after",
      "account_id": "gh-app-B",
      "platform_id": "github",
      "auth_state": "VALID",
      "permission_state": "ALLOWED",
      "account_restriction_state": "NONE",
      "quota_model": "SECONDARY",
      "quota_bucket": "secondary-content",
      "method_or_operation": "POST /comments",
      "quota_cost": 5,
      "limit_value": null,
      "remaining_value": null,
      "reset_at": null,
      "retry_after": 120,
      "rate_limit_class": "SECONDARY",
      "http_status": 429,
      "provider_error_code": "secondary_rate_limit",
      "evidence_retrieved_at": "2026-09-16T07:59:00Z",
      "provenance_ref": "src://GH-RATE",
      "bucket_model_current": true
    },
    {
      "case_id": "expired_auth_reauth",
      "account_id": "third-1",
      "platform_id": "third-platform",
      "auth_state": "EXPIRED",
      "permission_state": "UNKNOWN",
      "account_restriction_state": "NONE",
      "quota_model": "UNKNOWN",
      "quota_bucket": null,
      "method_or_operation": "publish",
      "quota_cost": null,
      "limit_value": null,
      "remaining_value": null,
      "reset_at": null,
      "retry_after": null,
      "rate_limit_class": "NONE",
      "http_status": 403,
      "provider_error_code": "invalid_token",
      "evidence_retrieved_at": "2026-09-16T07:59:00Z",
      "provenance_ref": "src://auth-log",
      "bucket_model_current": true
    },
    {
      "case_id": "permission_policy_review",
      "account_id": "third-2",
      "platform_id": "third-platform",
      "auth_state": "VALID",
      "permission_state": "DENIED",
      "account_restriction_state": "NONE",
      "quota_model": "GLOBAL",
      "quota_bucket": "default",
      "method_or_operation": "publish",
      "quota_cost": 1,
      "limit_value": 1000,
      "remaining_value": 900,
      "reset_at": "2026-09-17T00:00:00Z",
      "retry_after": null,
      "rate_limit_class": "NONE",
      "http_status": 403,
      "provider_error_code": "insufficient_permissions",
      "evidence_retrieved_at": "2026-09-16T07:59:00Z",
      "provenance_ref": "src://provider-permission",
      "bucket_model_current": true
    },
    {
      "case_id": "youtube_quota_review",
      "account_id": "yt-project-1",
      "platform_id": "youtube",
      "auth_state": "VALID",
      "permission_state": "ALLOWED",
      "account_restriction_state": "NONE",
      "quota_model": "GRANULAR_PLUS_SHARED",
      "quota_bucket": "shared-other-endpoints",
      "method_or_operation": "playlistItems.insert",
      "quota_cost": 50,
      "limit_value": 10000,
      "remaining_value": 0,
      "reset_at": "2026-09-17T07:00:00Z",
      "retry_after": null,
      "rate_limit_class": "QUOTA",
      "http_status": 403,
      "provider_error_code": "quotaExceeded",
      "evidence_retrieved_at": "2026-09-16T07:57:00Z",
      "provenance_ref": "src://YT-ERRORS",
      "bucket_model_current": true
    },
    {
      "case_id": "stale_or_untrusted_block",
      "account_id": "yt-project-2",
      "platform_id": "youtube",
      "auth_state": "VALID",
      "permission_state": "ALLOWED",
      "account_restriction_state": "NONE",
      "quota_model": "GLOBAL_OLD",
      "quota_bucket": "all-methods",
      "method_or_operation": "search.list",
      "quota_cost": 100,
      "limit_value": 10000,
      "remaining_value": 9000,
      "reset_at": "2026-09-17T07:00:00Z",
      "retry_after": null,
      "rate_limit_class": "QUOTA",
      "http_status": 200,
      "provider_error_code": null,
      "evidence_retrieved_at": "2026-05-01T00:00:00Z",
      "provenance_ref": null,
      "bucket_model_current": false
    },
    {
      "case_id": "transfer_granular_bucket",
      "account_id": "yt-project-2",
      "platform_id": "youtube",
      "auth_state": "VALID",
      "permission_state": "ALLOWED",
      "account_restriction_state": "NONE",
      "quota_model": "GRANULAR_PLUS_SHARED",
      "quota_bucket": "search.list",
      "method_or_operation": "search.list",
      "quota_cost": 1,
      "limit_value": 100,
      "remaining_value": 78,
      "reset_at": "2026-09-17T07:00:00Z",
      "retry_after": null,
      "rate_limit_class": "QUOTA",
      "http_status": 200,
      "provider_error_code": null,
      "evidence_retrieved_at": "2026-09-16T07:59:00Z",
      "provenance_ref": "src://YT-REVISION+YT-QUOTA",
      "bucket_model_current": true
    }
  ]
}
