{
  "ok": true,
  "schema": "lvl-recommendations-v1",
  "skill": {
    "id": "gf-q-function-route-map",
    "name": "Functions Route Map Card",
    "category": "Coding",
    "price_usd": 3.49,
    "related_skills": [],
    "requires": [],
    "complements": []
  },
  "recommendations": [
    {
      "skill_id": "gf-q-pay-js-invariants",
      "name": "pay.js Invariant Checklist",
      "price_usd": 4.59,
      "category": "Coding",
      "score": 11,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-pay-js-invariants",
      "outline": "https://lvlltd.com/skills/gf-q-pay-js-invariants/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-skills-json-merge",
      "name": "skills.json Merge Discipline",
      "price_usd": 2.59,
      "category": "Coding",
      "score": 11,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-skills-json-merge",
      "outline": "https://lvlltd.com/skills/gf-q-skills-json-merge/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-catalog-build-debug",
      "name": "Catalog Build Debug Runbook",
      "price_usd": 2.49,
      "category": "Coding",
      "score": 11,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-catalog-build-debug",
      "outline": "https://lvlltd.com/skills/gf-q-catalog-build-debug/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-worker-bind-audit",
      "name": "Worker Binding Audit Notes",
      "price_usd": 3.99,
      "category": "Coding",
      "score": 11,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-worker-bind-audit",
      "outline": "https://lvlltd.com/skills/gf-q-worker-bind-audit/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-pages-function-pay-map",
      "name": "Pages Function Pay Route Map",
      "price_usd": 4.29,
      "category": "Coding",
      "score": 10.2,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-pages-function-pay-map",
      "outline": "https://lvlltd.com/skills/gf-q-pages-function-pay-map/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-only-id-complete",
      "name": "ONLY_ID Sealed Complete Hook",
      "price_usd": 2.79,
      "category": "Coding",
      "score": 10.2,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-only-id-complete",
      "outline": "https://lvlltd.com/skills/gf-q-only-id-complete/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-gitignore-artifacts",
      "name": "Artifacts Gitignore Notes",
      "price_usd": 1.29,
      "category": "Coding",
      "score": 9.4,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-gitignore-artifacts",
      "outline": "https://lvlltd.com/skills/gf-q-gitignore-artifacts/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-node20-fetch",
      "name": "Node 20 Fetch Patterns",
      "price_usd": 0.99,
      "category": "Coding",
      "score": 9.4,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-node20-fetch",
      "outline": "https://lvlltd.com/skills/gf-q-node20-fetch/outline.json",
      "requires": false,
      "complements": false
    }
  ],
  "bundles_including": [],
  "sources": {
    "explicit_fields": "related_skills / requires / complements when present",
    "co_purchase": "same wallet confirmed unlocks (ledger)",
    "structural": "same_category + tag_overlap"
  },
  "note": "Hand-curated bundles remain under /api/shop → bundles; this graph scales beyond editorial lists."
}