{
  "module": "curriculum",
  "surface": "alpha",
  "generatedAt": "2026-06-13T16:42:30.814Z",
  "baseUrl": "https://platform3-andymontgomery-9773s-projects.vercel.app/curriculum/alpha/implementation/api",
  "dataDictionaryUrl": "https://platform3-andymontgomery-9773s-projects.vercel.app/curriculum/alpha/data_dictionary/curriculum-alpha-data-dictionary.json",
  "customerContractUrl": "https://platform3-andymontgomery-9773s-projects.vercel.app/curriculum/alpha/customer_website/curriculum-alpha-customer-contract.json",
  "pinnedSetName": "curriculum-alpha-registry-kc-launch-gate-v2",
  "pinnedInputs": {
    "tenantId": "demo",
    "subjectId": "math",
    "asOfDate": "2026-06-11",
    "standardsFrameworkId": "11111111-1111-4111-8111-111111111110",
    "trackId": "44444444-4444-4444-8444-444444444440",
    "courseId": "66666666-6666-4666-8666-666666666660",
    "unitId": "77777777-7777-4777-8777-777777777770",
    "lessonId": "88888888-8888-4888-8888-888888888880",
    "gateId": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbb0",
    "lessonContentId": "58612cab-9c46-426c-8c20-0e9f19c807c5",
    "lessonContentVersionId": "efcf3561-3a66-4825-9588-e792ef20c312",
    "gateTestBankId": "27cba337-7e16-a581-b45a-abe1ef9d22eb",
    "kcRootId": "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0",
    "kcEqualGroupsId": "dddddddd-dddd-4ddd-8ddd-ddddddddddd0",
    "studentId": "student_demo",
    "authoredComponentId": "integration-review-proof-20260611",
    "timeBackCourseId": "integration-timeback-proof-20260611",
    "timeBackCourseName": "Integration TimeBack Proof Course 2026-06-11",
    "realShapeCourseId": "integration-oneroster-course-proof-20260611",
    "realShapeComponentId": "integration-course-component-proof-20260611",
    "realShapeSessionId": "integration-academic-session-proof-20260611",
    "realShapeStandardCode": "TEKS INTEGRATION.8.11.C"
  },
  "rawPath": {
    "ok": true,
    "label": "raw DB plus data dictionary",
    "mode": "Postgres information_schema and CASE JSONB reads using documented dictionary rules",
    "transport": "aws-1-us-east-1.pooler.supabase.com:6543/postgres",
    "fallbackAttempts": [
      "db.rlkahoflqakznpwyiqmo.supabase.co:5432 getaddrinfo ENOTFOUND db.rlkahoflqakznpwyiqmo.supabase.co"
    ],
    "requiredDerivedViews": [
      {
        "view": "alpha.curriculum_standards_frameworks",
        "present": true
      },
      {
        "view": "alpha.curriculum_standards",
        "present": true
      },
      {
        "view": "alpha.curriculum_components",
        "present": true
      },
      {
        "view": "alpha.curriculum_courses",
        "present": true
      },
      {
        "view": "alpha.curriculum_lessons",
        "present": true
      },
      {
        "view": "alpha.curriculum_gates",
        "present": true
      },
      {
        "view": "alpha.curriculum_component_edges",
        "present": true
      },
      {
        "view": "alpha.curriculum_framework_alignments",
        "present": true
      }
    ],
    "forbiddenAlphaCurriculumTables": [],
    "documentedRules": [
      "CASE owns standards and component structure; alpha.knowledge_component plus alpha.knowledge_component_version own every active KC identity and version.",
      "Component kind is case.cf_item.body->>'CFItemType'; flat per-kind views are derived.",
      "CASE isChildOf is component containment only; KCs have no stored containment tree.",
      "alpha.kc_prerequisite is the sole prerequisite DAG; alpha.kc_relation owns other typed KC graph semantics.",
      "alpha.standard_kc_map owns KC-to-standard links; CASE isPartOf never represents them.",
      "source_kc_id is provenance and migration evidence only; it never resolves create, read, version, retire, graph, scope, remediation, standards-map, or Content-attribution identity. Creation retries use the original Idempotency-Key or exact canonical kc_id.",
      "Curriculum references one immutable Content version through target_ref {content_id, content_version_id, content_kind}; Content-owned eligibility is checked at authoring and launch, latest is never substituted, and Curriculum never stores Content bodies or producer verdicts.",
      "Policy thresholds and Results student state are references/read overlays, never Curriculum-owned numbers.",
      "Source-shaped TimeBack course records are normalized server-side from processed_facts, courses, course_components, and academic_sessions rows and must materialize readable CASE rows. Learning-objective/standards evidence uses the standards import boundary and never becomes a KC identity fallback."
    ],
    "requiredAuthorityTables": [
      "alpha.kc_prerequisite",
      "alpha.kc_relation",
      "alpha.knowledge_component",
      "alpha.knowledge_component_version",
      "alpha.standard_kc_map",
      "alpha.standards_source_release",
      "alpha.standards_source_row_binding",
      "case.cf_association",
      "case.cf_document",
      "case.cf_item"
    ]
  },
  "questionCount": 12,
  "questions": [
    {
      "id": "storage-authority",
      "question": "What is authoritative Curriculum Alpha storage?",
      "whyTopQuestion": "CASE owns standards/components while the governed Alpha registry owns active KC identity, versions, graphs, and standards links.",
      "useCases": [
        "author",
        "place",
        "route",
        "gate",
        "remediate"
      ],
      "domains": [
        "standards_frameworks",
        "standards",
        "components",
        "courses",
        "lessons",
        "gates",
        "component_edges",
        "kcs",
        "kc_edges",
        "kc_standard_maps",
        "framework_alignments"
      ],
      "groundTruth": [
        "alpha.kc_prerequisite",
        "alpha.kc_relation",
        "alpha.knowledge_component",
        "alpha.knowledge_component_version",
        "alpha.standard_kc_map",
        "alpha.standards_source_release",
        "alpha.standards_source_row_binding",
        "case.cf_association",
        "case.cf_document",
        "case.cf_item"
      ],
      "apiOnly": {
        "answer": [
          "alpha.kc_prerequisite",
          "alpha.kc_relation",
          "alpha.knowledge_component",
          "alpha.knowledge_component_version",
          "alpha.standard_kc_map",
          "alpha.standards_source_release",
          "alpha.standards_source_row_binding",
          "case.cf_association",
          "case.cf_document",
          "case.cf_item"
        ]
      },
      "rawDbDictionaryOnly": {
        "answer": [
          "alpha.kc_prerequisite",
          "alpha.kc_relation",
          "alpha.knowledge_component",
          "alpha.knowledge_component_version",
          "alpha.standard_kc_map",
          "alpha.standards_source_release",
          "alpha.standards_source_row_binding",
          "case.cf_association",
          "case.cf_document",
          "case.cf_item"
        ]
      },
      "freeChoice": {
        "answer": [
          "alpha.kc_prerequisite",
          "alpha.kc_relation",
          "alpha.knowledge_component",
          "alpha.knowledge_component_version",
          "alpha.standard_kc_map",
          "alpha.standards_source_release",
          "alpha.standards_source_row_binding",
          "case.cf_association",
          "case.cf_document",
          "case.cf_item"
        ]
      },
      "converged": true
    },
    {
      "id": "standards-frameworks",
      "question": "How many active standards frameworks and standard CFItems are visible on the first documented standards-frameworks page after source-shaped ingest?",
      "whyTopQuestion": "Standards are frozen CASE documents/items, including TimeBack-ingested standards; their KC links live only in alpha.standard_kc_map.",
      "useCases": [
        "author"
      ],
      "domains": [
        "standards_frameworks",
        "standards"
      ],
      "groundTruth": {
        "frameworks": 200,
        "standards": 2442
      },
      "apiOnly": {
        "answer": {
          "frameworks": 200,
          "standards": 2442
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "frameworks": 200,
          "standards": 2442
        }
      },
      "freeChoice": {
        "answer": {
          "frameworks": 200,
          "standards": 2442
        }
      },
      "converged": true
    },
    {
      "id": "author-component-write",
      "question": "Does an authored review component write as one CASE CFItem plus one isChildOf association?",
      "whyTopQuestion": "The author use case must prove the one-component-table model through a real write.",
      "useCases": [
        "author"
      ],
      "domains": [
        "components",
        "component_edges"
      ],
      "groundTruth": {
        "component_id": "integration-review-proof-20260611",
        "kind": "review",
        "stored_as": "case.cf_item",
        "parent_component_id": "77777777-7777-4777-8777-777777777770"
      },
      "apiOnly": {
        "answer": {
          "component_id": "integration-review-proof-20260611",
          "kind": "review",
          "stored_as": "case.cf_item",
          "parent_component_id": "77777777-7777-4777-8777-777777777770"
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "component_id": "integration-review-proof-20260611",
          "kind": "review",
          "stored_as": "case.cf_item",
          "parent_component_id": "77777777-7777-4777-8777-777777777770"
        }
      },
      "freeChoice": {
        "answer": {
          "component_id": "integration-review-proof-20260611",
          "kind": "review",
          "stored_as": "case.cf_item",
          "parent_component_id": "77777777-7777-4777-8777-777777777770"
        }
      },
      "converged": true
    },
    {
      "id": "component-tree-route",
      "question": "What ordered core component kinds appear under the demo course tree?",
      "whyTopQuestion": "Curriculum nests components with isChildOf; Content rows stay flat and referenced.",
      "useCases": [
        "author",
        "route"
      ],
      "domains": [
        "components",
        "courses",
        "lessons",
        "gates",
        "component_edges"
      ],
      "groundTruth": {
        "kind_path": "course>unit>lesson>mastery_gate>remediation_pocket>review>practice",
        "component_ids": [
          "66666666-6666-4666-8666-666666666660",
          "77777777-7777-4777-8777-777777777770",
          "88888888-8888-4888-8888-888888888880",
          "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbb0",
          "cccccccc-cccc-4ccc-8ccc-ccccccccccc0",
          "99999999-9999-4999-8999-999999999990",
          "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa0"
        ]
      },
      "apiOnly": {
        "answer": {
          "kind_path": "course>unit>lesson>mastery_gate>remediation_pocket>review>practice",
          "component_ids": [
            "66666666-6666-4666-8666-666666666660",
            "77777777-7777-4777-8777-777777777770",
            "88888888-8888-4888-8888-888888888880",
            "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbb0",
            "cccccccc-cccc-4ccc-8ccc-ccccccccccc0",
            "99999999-9999-4999-8999-999999999990",
            "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa0"
          ]
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "kind_path": "course>unit>lesson>mastery_gate>remediation_pocket>review>practice",
          "component_ids": [
            "66666666-6666-4666-8666-666666666660",
            "77777777-7777-4777-8777-777777777770",
            "88888888-8888-4888-8888-888888888880",
            "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbb0",
            "cccccccc-cccc-4ccc-8ccc-ccccccccccc0",
            "99999999-9999-4999-8999-999999999990",
            "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa0"
          ]
        }
      },
      "freeChoice": {
        "answer": {
          "kind_path": "course>unit>lesson>mastery_gate>remediation_pocket>review>practice",
          "component_ids": [
            "66666666-6666-4666-8666-666666666660",
            "77777777-7777-4777-8777-777777777770",
            "88888888-8888-4888-8888-888888888880",
            "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbb0",
            "cccccccc-cccc-4ccc-8ccc-ccccccccccc0",
            "99999999-9999-4999-8999-999999999990",
            "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa0"
          ]
        }
      },
      "converged": true
    },
    {
      "id": "placement-candidates",
      "question": "Which bottom-up placement policy ref and grade-level mastery gate count does the demo track expose?",
      "whyTopQuestion": "PowerPath placement reads shared grade-level mastery gates and policy refs; Results owns student position. Screener/MAP evidence may choose the starting grade, never final placement.",
      "useCases": [
        "place"
      ],
      "domains": [
        "components",
        "gates",
        "component_edges"
      ],
      "groundTruth": {
        "entry_policy_ref": "alpha.policy.placement.powerpath_bottom_up_grade_gate",
        "candidates": 6
      },
      "apiOnly": {
        "answer": {
          "entry_policy_ref": "alpha.policy.placement.powerpath_bottom_up_grade_gate",
          "candidates": 6
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "entry_policy_ref": "alpha.policy.placement.powerpath_bottom_up_grade_gate",
          "candidates": 6
        }
      },
      "freeChoice": {
        "answer": {
          "entry_policy_ref": "alpha.policy.placement.powerpath_bottom_up_grade_gate",
          "candidates": 6
        }
      },
      "converged": true
    },
    {
      "id": "next-lesson-route",
      "question": "What next component does the demo course return for student_demo?",
      "whyTopQuestion": "Curriculum resolves a shared component only after revalidating its pinned exact Content version, while Results supplies the per-student next-task state.",
      "useCases": [
        "route"
      ],
      "domains": [
        "components",
        "courses",
        "lessons",
        "component_edges"
      ],
      "groundTruth": {
        "component_id": "0bd14ae5-567a-4061-909d-85eacd898347",
        "kind": "lesson"
      },
      "apiOnly": {
        "answer": {
          "component_id": "0bd14ae5-567a-4061-909d-85eacd898347",
          "kind": "lesson"
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "component_id": "0bd14ae5-567a-4061-909d-85eacd898347",
          "kind": "lesson"
        }
      },
      "freeChoice": {
        "answer": {
          "component_id": "0bd14ae5-567a-4061-909d-85eacd898347",
          "kind": "lesson"
        }
      },
      "converged": true
    },
    {
      "id": "gate-contract",
      "question": "Where does the Grade 3 demo gate point for passing criteria?",
      "whyTopQuestion": "Gate fields live on the gated component and point to Policy by reference.",
      "useCases": [
        "gate"
      ],
      "domains": [
        "gates",
        "content_reference"
      ],
      "groundTruth": {
        "passing_criteria_ref": "alpha.policy.gate.mastery_default",
        "target_module": "content"
      },
      "apiOnly": {
        "answer": {
          "passing_criteria_ref": "alpha.policy.gate.mastery_default",
          "target_module": "content"
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "passing_criteria_ref": "alpha.policy.gate.mastery_default",
          "target_module": "content"
        }
      },
      "freeChoice": {
        "answer": {
          "passing_criteria_ref": "alpha.policy.gate.mastery_default",
          "target_module": "content"
        }
      },
      "converged": true
    },
    {
      "id": "universal-remediation",
      "question": "What typed remediation list does the failed demo gate return?",
      "whyTopQuestion": "The universal gate-failure protocol must return typed assignments while Results owns inserted sequence state.",
      "useCases": [
        "remediate"
      ],
      "domains": [
        "gates",
        "components",
        "component_edges"
      ],
      "groundTruth": [
        "careless:practice",
        "forgot:review",
        "never_learned:lesson"
      ],
      "apiOnly": {
        "answer": [
          "careless:practice",
          "forgot:review",
          "never_learned:lesson"
        ]
      },
      "rawDbDictionaryOnly": {
        "answer": [
          "careless:practice",
          "forgot:review",
          "never_learned:lesson"
        ]
      },
      "freeChoice": {
        "answer": [
          "careless:practice",
          "forgot:review",
          "never_learned:lesson"
        ]
      },
      "converged": true
    },
    {
      "id": "source-ingest-materialization",
      "question": "Does source-shaped TimeBack ingest materialize readable CASE rows from the real value-space shapes?",
      "whyTopQuestion": "Migration passes raw TimeBack course rows from processed_facts, OneRoster courses/components, and academic sessions, then lets the server normalize them into CASE rows. Learning-objective/standards evidence uses the standards import boundary and never mints or resolves a KC.",
      "useCases": [
        "author"
      ],
      "domains": [
        "timeback_source_ingest",
        "components"
      ],
      "groundTruth": {
        "materialized": true,
        "request_shape": "processed_facts/courses/course_components/learning_objectives/academic_sessions",
        "readback_count": 4,
        "readback_kinds": [
          "course",
          "course",
          "placeholder",
          "placeholder"
        ]
      },
      "apiOnly": {
        "answer": {
          "materialized": true,
          "request_shape": "processed_facts/courses/course_components/learning_objectives/academic_sessions",
          "readback_count": 4,
          "readback_kinds": [
            "course",
            "course",
            "placeholder",
            "placeholder"
          ]
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "materialized": true,
          "request_shape": "processed_facts/courses/course_components/learning_objectives/academic_sessions",
          "readback_count": 4,
          "readback_kinds": [
            "course",
            "course",
            "placeholder",
            "placeholder"
          ]
        }
      },
      "freeChoice": {
        "answer": {
          "materialized": true,
          "request_shape": "processed_facts/courses/course_components/learning_objectives/academic_sessions",
          "readback_count": 4,
          "readback_kinds": [
            "course",
            "course",
            "placeholder",
            "placeholder"
          ]
        }
      },
      "converged": true
    },
    {
      "id": "content-flat-reference",
      "question": "How does Curriculum reference student-facing Content for a mastery gate?",
      "whyTopQuestion": "Curriculum references a public Content test_bank through target_ref and registered renderer_ref; renderer_kind is only a compatibility alias, and Curriculum never stores Content bodies or encodes bank role as Curriculum metadata.",
      "useCases": [
        "author",
        "route",
        "gate"
      ],
      "domains": [
        "content_reference"
      ],
      "groundTruth": {
        "target_module": "content",
        "content_kind": "test_bank",
        "renderer_kind": "renderer:qti-test",
        "renderer_ref": "renderer:qti-test"
      },
      "apiOnly": {
        "answer": {
          "target_module": "content",
          "content_kind": "test_bank",
          "renderer_kind": "renderer:qti-test",
          "renderer_ref": "renderer:qti-test"
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "target_module": "content",
          "content_kind": "test_bank",
          "renderer_kind": "renderer:qti-test",
          "renderer_ref": "renderer:qti-test"
        }
      },
      "freeChoice": {
        "answer": {
          "target_module": "content",
          "content_kind": "test_bank",
          "renderer_kind": "renderer:qti-test",
          "renderer_ref": "renderer:qti-test"
        }
      },
      "converged": true
    },
    {
      "id": "registry-kc-prerequisite-graph",
      "question": "What exact registry KC and prerequisite edge anchor the demo graph?",
      "whyTopQuestion": "alpha.knowledge_component owns the identity and alpha.kc_prerequisite is the sole prerequisite DAG; KCs have no containment tree.",
      "useCases": [
        "author",
        "route"
      ],
      "domains": [
        "kcs",
        "kc_edges"
      ],
      "groundTruth": {
        "kc_id": "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0",
        "stored_as": "alpha.knowledge_component",
        "prerequisite_edges": [
          "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0>dddddddd-dddd-4ddd-8ddd-ddddddddddd0"
        ]
      },
      "apiOnly": {
        "answer": {
          "kc_id": "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0",
          "stored_as": "alpha.knowledge_component",
          "prerequisite_edges": [
            "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0>dddddddd-dddd-4ddd-8ddd-ddddddddddd0"
          ]
        }
      },
      "rawDbDictionaryOnly": {
        "answer": {
          "kc_id": "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0",
          "stored_as": "alpha.knowledge_component",
          "prerequisite_edges": [
            "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0>dddddddd-dddd-4ddd-8ddd-ddddddddddd0"
          ]
        }
      },
      "freeChoice": {
        "answer": {
          "kc_id": "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0",
          "stored_as": "alpha.knowledge_component",
          "prerequisite_edges": [
            "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeee0>dddddddd-dddd-4ddd-8ddd-ddddddddddd0"
          ]
        }
      },
      "converged": true
    },
    {
      "id": "kc-graph-and-standard-map-authorities",
      "question": "Which authorities own prerequisite, other KC graph, and KC-to-standard semantics?",
      "whyTopQuestion": "Registry-native prerequisite, relation, and standards-map authorities are explicit; CASE associations remain component/framework/standard-only.",
      "useCases": [
        "author",
        "route"
      ],
      "domains": [
        "kc_edges",
        "kc_standard_maps",
        "framework_alignments"
      ],
      "groundTruth": [
        "alpha.kc_prerequisite",
        "alpha.kc_relation",
        "alpha.standard_kc_map"
      ],
      "apiOnly": {
        "answer": [
          "alpha.kc_prerequisite",
          "alpha.kc_relation",
          "alpha.standard_kc_map"
        ]
      },
      "rawDbDictionaryOnly": {
        "answer": [
          "alpha.kc_prerequisite",
          "alpha.kc_relation",
          "alpha.standard_kc_map"
        ]
      },
      "freeChoice": {
        "answer": [
          "alpha.kc_prerequisite",
          "alpha.kc_relation",
          "alpha.standard_kc_map"
        ]
      },
      "converged": true
    }
  ],
  "topQuestionSet": [
    {
      "id": "storage-authority",
      "question": "What is authoritative Curriculum Alpha storage?",
      "useCases": [
        "author",
        "place",
        "route",
        "gate",
        "remediate"
      ],
      "domains": [
        "standards_frameworks",
        "standards",
        "components",
        "courses",
        "lessons",
        "gates",
        "component_edges",
        "kcs",
        "kc_edges",
        "kc_standard_maps",
        "framework_alignments"
      ],
      "converged": true
    },
    {
      "id": "standards-frameworks",
      "question": "How many active standards frameworks and standard CFItems are visible on the first documented standards-frameworks page after source-shaped ingest?",
      "useCases": [
        "author"
      ],
      "domains": [
        "standards_frameworks",
        "standards"
      ],
      "converged": true
    },
    {
      "id": "author-component-write",
      "question": "Does an authored review component write as one CASE CFItem plus one isChildOf association?",
      "useCases": [
        "author"
      ],
      "domains": [
        "components",
        "component_edges"
      ],
      "converged": true
    },
    {
      "id": "component-tree-route",
      "question": "What ordered core component kinds appear under the demo course tree?",
      "useCases": [
        "author",
        "route"
      ],
      "domains": [
        "components",
        "courses",
        "lessons",
        "gates",
        "component_edges"
      ],
      "converged": true
    },
    {
      "id": "placement-candidates",
      "question": "Which bottom-up placement policy ref and grade-level mastery gate count does the demo track expose?",
      "useCases": [
        "place"
      ],
      "domains": [
        "components",
        "gates",
        "component_edges"
      ],
      "converged": true
    },
    {
      "id": "next-lesson-route",
      "question": "What next component does the demo course return for student_demo?",
      "useCases": [
        "route"
      ],
      "domains": [
        "components",
        "courses",
        "lessons",
        "component_edges"
      ],
      "converged": true
    },
    {
      "id": "gate-contract",
      "question": "Where does the Grade 3 demo gate point for passing criteria?",
      "useCases": [
        "gate"
      ],
      "domains": [
        "gates",
        "content_reference"
      ],
      "converged": true
    },
    {
      "id": "universal-remediation",
      "question": "What typed remediation list does the failed demo gate return?",
      "useCases": [
        "remediate"
      ],
      "domains": [
        "gates",
        "components",
        "component_edges"
      ],
      "converged": true
    },
    {
      "id": "source-ingest-materialization",
      "question": "Does source-shaped TimeBack ingest materialize readable CASE rows from the real value-space shapes?",
      "useCases": [
        "author"
      ],
      "domains": [
        "timeback_source_ingest",
        "components"
      ],
      "converged": true
    },
    {
      "id": "content-flat-reference",
      "question": "How does Curriculum reference student-facing Content for a mastery gate?",
      "useCases": [
        "author",
        "route",
        "gate"
      ],
      "domains": [
        "content_reference"
      ],
      "converged": true
    },
    {
      "id": "registry-kc-prerequisite-graph",
      "question": "What exact registry KC and prerequisite edge anchor the demo graph?",
      "useCases": [
        "author",
        "route"
      ],
      "domains": [
        "kcs",
        "kc_edges"
      ],
      "converged": true
    },
    {
      "id": "kc-graph-and-standard-map-authorities",
      "question": "Which authorities own prerequisite, other KC graph, and KC-to-standard semantics?",
      "useCases": [
        "author",
        "route"
      ],
      "domains": [
        "kc_edges",
        "kc_standard_maps",
        "framework_alignments"
      ],
      "converged": true
    }
  ],
  "domainCoverage": {
    "required": [
      "standards_frameworks",
      "standards",
      "components",
      "courses",
      "lessons",
      "gates",
      "component_edges",
      "kcs",
      "kc_edges",
      "kc_standard_maps",
      "framework_alignments",
      "content_reference",
      "timeback_source_ingest"
    ],
    "requiredCount": 13,
    "coveredCount": 13,
    "allCovered": true,
    "coverage": [
      {
        "domain": "standards_frameworks",
        "questionIds": [
          "storage-authority",
          "standards-frameworks"
        ],
        "covered": true
      },
      {
        "domain": "standards",
        "questionIds": [
          "storage-authority",
          "standards-frameworks"
        ],
        "covered": true
      },
      {
        "domain": "components",
        "questionIds": [
          "storage-authority",
          "author-component-write",
          "component-tree-route",
          "placement-candidates",
          "next-lesson-route",
          "universal-remediation",
          "source-ingest-materialization"
        ],
        "covered": true
      },
      {
        "domain": "courses",
        "questionIds": [
          "storage-authority",
          "component-tree-route",
          "next-lesson-route"
        ],
        "covered": true
      },
      {
        "domain": "lessons",
        "questionIds": [
          "storage-authority",
          "component-tree-route",
          "next-lesson-route"
        ],
        "covered": true
      },
      {
        "domain": "gates",
        "questionIds": [
          "storage-authority",
          "component-tree-route",
          "placement-candidates",
          "gate-contract",
          "universal-remediation"
        ],
        "covered": true
      },
      {
        "domain": "component_edges",
        "questionIds": [
          "storage-authority",
          "author-component-write",
          "component-tree-route",
          "placement-candidates",
          "next-lesson-route",
          "universal-remediation"
        ],
        "covered": true
      },
      {
        "domain": "kcs",
        "questionIds": [
          "storage-authority",
          "registry-kc-prerequisite-graph"
        ],
        "covered": true
      },
      {
        "domain": "kc_edges",
        "questionIds": [
          "storage-authority",
          "registry-kc-prerequisite-graph",
          "kc-graph-and-standard-map-authorities"
        ],
        "covered": true
      },
      {
        "domain": "kc_standard_maps",
        "questionIds": [
          "storage-authority",
          "kc-graph-and-standard-map-authorities"
        ],
        "covered": true
      },
      {
        "domain": "framework_alignments",
        "questionIds": [
          "storage-authority",
          "kc-graph-and-standard-map-authorities"
        ],
        "covered": true
      },
      {
        "domain": "content_reference",
        "questionIds": [
          "gate-contract",
          "content-flat-reference"
        ],
        "covered": true
      },
      {
        "domain": "timeback_source_ingest",
        "questionIds": [
          "source-ingest-materialization"
        ],
        "covered": true
      }
    ]
  },
  "useCaseCoverage": {
    "required": [
      "author",
      "place",
      "route",
      "gate",
      "remediate"
    ],
    "requiredCount": 5,
    "coveredCount": 5,
    "allCovered": true,
    "coverage": [
      {
        "useCase": "author",
        "questionIds": [
          "storage-authority",
          "standards-frameworks",
          "author-component-write",
          "component-tree-route",
          "source-ingest-materialization",
          "content-flat-reference",
          "registry-kc-prerequisite-graph",
          "kc-graph-and-standard-map-authorities"
        ],
        "covered": true
      },
      {
        "useCase": "place",
        "questionIds": [
          "storage-authority",
          "placement-candidates"
        ],
        "covered": true
      },
      {
        "useCase": "route",
        "questionIds": [
          "storage-authority",
          "component-tree-route",
          "next-lesson-route",
          "content-flat-reference",
          "registry-kc-prerequisite-graph",
          "kc-graph-and-standard-map-authorities"
        ],
        "covered": true
      },
      {
        "useCase": "gate",
        "questionIds": [
          "storage-authority",
          "gate-contract",
          "content-flat-reference"
        ],
        "covered": true
      },
      {
        "useCase": "remediate",
        "questionIds": [
          "storage-authority",
          "universal-remediation"
        ],
        "covered": true
      }
    ]
  },
  "converged": true,
  "contractRefreshedAt": "2026-07-29T14:03:14.468Z",
  "evidenceMode": "contract-refresh"
}
