{
  "$schema": "https://kokunoyumeto.github.io/program-matematika-indonesia/schema/v1/v23-adapter-index-v1.schema.json",
  "schema_id": "interlanguage/program-matematika-indonesia-v23-adapter-index/v1",
  "schema_version": "1.0.0",
  "recorded_at": "2026-08-31",
  "policy": {
    "owner_native_authoritative": true,
    "zero_copy": true,
    "machine_data_secondary": true,
    "aggregate_conformance_claim": false
  },
  "summary": {
    "curriculum_roles": 40,
    "proof_roles": 5,
    "legacy_proofs": 0,
    "contract_2_3_1_adapters": 5,
    "unbound_roles": 35
  },
  "adapters": [
    {
      "role_id": "A00",
      "course": "Praaljabar dan Fondasi Kuantitatif",
      "proof_kind": "reversible_lane_adapter",
      "contract_version": "2.3.1",
      "adapter_version": "0.1.0",
      "admission_state": "admitted_pending_release",
      "learner_url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/A00/latihan/",
      "release_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/tag/v0.62.13",
      "public_asset_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.62.13/program-matematika-indonesia-backend-v2.3.1-a00-o001-assessment-adapter-v0.1.0.zip",
      "public_replay_status": "pending_release_local_seal_verified",
      "learner_runtime_relationship": "directly_consumes_adapter_outputs",
      "adopted_capabilities": [
        "stable_native_assessment_identity",
        "exact_html_anchor_routes",
        "structured_assessment_components",
        "explicit_solution_gaps",
        "component_rights",
        "lossless_jsonl_csv_projection",
        "learner_assessment_navigation"
      ],
      "known_limitations": [
        "The current learner map is an 8.14 MB whole-course payload rather than module shards.",
        "The navigator filters and routes verified source exercises; it does not claim automated mastery or invent missing solutions."
      ],
      "archive": {
        "path": "backend/v2.3/builds/a00_o001_v23_adapter_release/program-matematika-indonesia-backend-v2.3.1-a00-o001-assessment-adapter-v0.1.0.zip",
        "bytes": 8634922,
        "sha256": "43e122a96cf2878764ff53148c9d2d247ccb0b661b563ae6c5f04f4cd000098b"
      },
      "manifest": {
        "path": "backend/v2.3/extensions/a00-o001-assessments-v0.1.0/manifest.json",
        "bytes": 44086,
        "sha256": "934a85c6c1c61d826a9c1c8ac601957548b865757cd6386c3b8eb36160706c08"
      },
      "canonical_records": 1313,
      "native_records_preserved": 24315,
      "reversible_native_mappings": 24315,
      "assessment_records_preserved": 8105,
      "exact_html_anchor_routes": 21450,
      "explicit_solution_gaps": 2865,
      "navigation_units_promoted": 0,
      "component_rights_exceptions": 18,
      "jsonl_csv_table_pairs": 19,
      "owner_native_authoritative": true,
      "zero_copy": true,
      "scope_note": "The 24,315-record O001 assessment shard remains authoritative; the adapter adds zero-prose module/unit/route bindings and preserves the legacy v0.1.1 package as public predecessor evidence."
    },
    {
      "role_id": "B10",
      "course": "Pembuktian, Logika, dan Struktur Diskrit",
      "proof_kind": "reversible_lane_adapter",
      "contract_version": "2.3.1",
      "adapter_version": "0.2.0",
      "admission_state": "published",
      "learner_url": "https://kokunoyumeto.github.io/discrete-mathematics-open-introduction-id/",
      "release_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/tag/v0.62.9",
      "public_asset_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.62.9/program-matematika-indonesia-backend-v2.3.1-b10-adapter-v0.2.0.zip",
      "public_replay_status": "published_public_asset_readback_verified",
      "learner_runtime_relationship": "course_link_only_no_adapter_consumption_claim",
      "adopted_capabilities": [
        "reversible_native_unit_mappings",
        "structured_exercise_closure",
        "component_rights",
        "translation_state_evidence",
        "accessibility_records",
        "lossless_jsonl_csv_projection"
      ],
      "known_limitations": [
        "The central learner link opens the owner reader and does not claim that the reader consumes the adapter records.",
        "Normal prose remains coarser than the structured exercise closure and native duplication remains owner-side."
      ],
      "archive": {
        "path": "releases/v0.62.11/program-matematika-indonesia-backend-v2.3.1-b10-adapter-v0.2.0.zip",
        "bytes": 656874,
        "sha256": "c9a2f8a0307ec6fa6c5f3b03168760f0d8ed5a67e069b5afb592f905e12096b6"
      },
      "manifest": {
        "path": "backend/v2.3/extensions/b10-dmoi-v0.2.0/manifest.json",
        "bytes": 19931,
        "sha256": "64c83ee017972758e653d3c7a3f97092fbf0211332aa0ea861766b30980eae4a"
      },
      "canonical_records": 1264,
      "native_records_preserved": 163583,
      "reversible_native_mappings": 161,
      "jsonl_csv_table_pairs": 19,
      "owner_native_authoritative": true,
      "zero_copy": true
    },
    {
      "role_id": "D20",
      "course": "Analisis Fungsional",
      "proof_kind": "reversible_lane_adapter",
      "contract_version": "2.3.1",
      "adapter_version": "0.1.0",
      "admission_state": "published",
      "learner_url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D20/",
      "release_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/tag/v0.62.12",
      "public_asset_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.62.12/program-matematika-indonesia-backend-v2.3.1-d20-adapter-v0.1.0.zip",
      "public_replay_status": "published_public_asset_readback_verified",
      "learner_runtime_relationship": "course_link_only_no_adapter_consumption_claim",
      "adopted_capabilities": [
        "immutable_base_plus_learner_overlay",
        "formula_alignment",
        "solution_routes",
        "accessible_assets",
        "reversible_native_index_projection",
        "lossless_jsonl_csv_projection"
      ],
      "known_limitations": [
        "The central course wrapper exposes the learner surfaces but does not claim that those readers consume the adapter tables.",
        "Prerequisite modeling remains thin and the sealed adapter archive is intentionally large."
      ],
      "archive": {
        "path": "backend/v2.3/builds/d20_v23_adapter_release/program-matematika-indonesia-backend-v2.3.1-d20-adapter-v0.1.0.zip",
        "bytes": 61438875,
        "sha256": "25e059d26f049141dad326817bd01319b120a19fc4b78fb2efc879764fea2099"
      },
      "manifest": {
        "path": "backend/v2.3/extensions/d20-functional-analysis-v0.1.0/manifest.json",
        "bytes": 32321,
        "sha256": "a8ec1635e8b2eb4034b8be1181d9cbeb39438ff095e33e5c26e686e9ba5301e9"
      },
      "canonical_records": 138894,
      "native_records_preserved": 32383,
      "reversible_native_mappings": 32383,
      "additional_native_index_rows": 2104,
      "jsonl_csv_table_pairs": 19,
      "owner_native_authoritative": true,
      "zero_copy": true
    },
    {
      "role_id": "D60",
      "course": "Topologi Aljabar",
      "proof_kind": "reversible_lane_adapter",
      "contract_version": "2.3.1",
      "adapter_version": "0.1.0",
      "admission_state": "published",
      "learner_url": "https://kokunoyumeto.github.io/algebraic-topology-id/roberts-001-030-fomberg-001-007-ca01-hints-r01-r06-ca02-ca03-lab01-lab02-lab03-lab04-capstone/",
      "release_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/tag/v0.62.10",
      "public_asset_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.62.10/program-matematika-indonesia-backend-v2.3.1-d60-adapter-v0.1.0.zip",
      "public_replay_status": "published_public_asset_readback_verified",
      "learner_runtime_relationship": "course_link_only_no_adapter_consumption_claim",
      "adopted_capabilities": [
        "typed_concept_hint_solution_proof_streams",
        "verified_learner_routes",
        "component_rights",
        "reversible_native_mappings",
        "lossless_jsonl_csv_projection"
      ],
      "known_limitations": [
        "The owner learner route is verified, but no central claim is made that it consumes the adapter tables.",
        "Duplicated units, segments, and correction records retain owner-side synchronization cost; the compact public archive is not represented as a complete build tree."
      ],
      "archive": {
        "path": "releases/v0.62.11/program-matematika-indonesia-backend-v2.3.1-d60-adapter-v0.1.0.zip",
        "bytes": 9031171,
        "sha256": "e80654a5cd5a1ddbc801d8b61ae746108f9af8741c956616f5f21f3af42da549"
      },
      "manifest": {
        "path": "backend/v2.3/extensions/d60-algebraic-topology-v0.1.0/manifest.json",
        "bytes": 24000,
        "sha256": "1f2b9fd5daf7feaf42846fddc2cc82aa7c4818a8bfaf79faa3f4005ea9584820"
      },
      "canonical_records": 27642,
      "native_records_preserved": 8338,
      "reversible_native_mappings": 6279,
      "jsonl_csv_table_pairs": 19,
      "owner_native_authoritative": true,
      "zero_copy": true
    },
    {
      "role_id": "D110",
      "course": "Matematika Terformalisasi dalam Lean",
      "proof_kind": "reversible_lane_adapter",
      "contract_version": "2.3.1",
      "adapter_version": "0.1.0",
      "admission_state": "published",
      "learner_url": "https://kokunoyumeto.github.io/mathematics-in-lean-id/",
      "release_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/tag/v0.62.11",
      "public_asset_url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.62.11/program-matematika-indonesia-backend-v2.3.1-d110-adapter-v0.1.0.zip",
      "public_replay_status": "published_public_asset_readback_verified",
      "learner_runtime_relationship": "course_link_only_no_adapter_consumption_claim",
      "adopted_capabilities": [
        "proof_aligned_module_identity",
        "declaration_and_import_preservation",
        "compiler_semantic_replay",
        "reversible_native_index_projection",
        "lossless_jsonl_csv_projection"
      ],
      "known_limitations": [
        "The learner URL opens the owner HTML edition and is not evidence that the reader consumes the central adapter tables.",
        "Lean replay is a specialized optional capability and is not imposed on non-formal mathematics courses."
      ],
      "archive": {
        "path": "releases/v0.62.11/program-matematika-indonesia-backend-v2.3.1-d110-adapter-v0.1.0.zip",
        "bytes": 14097074,
        "sha256": "bfd554c0d459787ea0ccde0c2de1f22264705d2dffa20061fa2525095b83287b"
      },
      "manifest": {
        "path": "backend/v2.3/extensions/d110-mathematics-in-lean-v0.1.0/manifest.json",
        "bytes": 26398,
        "sha256": "99f756ea8e2f028c5b48efecddffdec252476cb26f2171e2006f69feae6d0496"
      },
      "canonical_records": 41460,
      "native_records_preserved": 10978,
      "reversible_native_mappings": 9272,
      "additional_native_index_rows": 1706,
      "jsonl_csv_table_pairs": 19,
      "owner_native_authoritative": true,
      "zero_copy": true
    }
  ]
}
