{
  "schema": "web64-c64lib-compatibility-manifest-v3",
  "authorities": {
    "common": {
      "version": "0.5.1",
      "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
      "repository": "https://github.com/c64lib/common",
      "license": "MIT"
    },
    "chipset": {
      "version": "0.5.1",
      "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
      "repository": "https://github.com/c64lib/chipset",
      "license": "MIT"
    },
    "text": {
      "version": "0.5.1",
      "commit": "b5fa872d2a43c1690666444d223603728b346a14",
      "repository": "https://github.com/c64lib/text",
      "license": "MIT"
    },
    "copper64": {
      "version": "0.6.0",
      "commit": "6d4b0920db0b0ddfd42976dc7c9ddc77c766244d",
      "repository": "https://github.com/c64lib/copper64",
      "license": "MIT"
    },
    "processors": {
      "version": "1.8.0",
      "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
      "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
      "license": "MIT"
    },
    "specification": {
      "version": "0.7.0pr",
      "commit": "bbf79e7b76a407725b0ba827e52e8372cf3aea69",
      "repository": "https://github.com/c64lib/64spec",
      "license": "MIT"
    },
    "magicDesk": {
      "version": "1.0.0",
      "commit": "6bc42e54efe0d1fac616a3848f8e7060348935f8",
      "repository": "https://github.com/c64lib/magic-desk-crt",
      "license": "MIT"
    },
    "bitmap": {
      "version": "unreleased-2021-08-26",
      "commit": "9754d2c372a4c875c2ebbad8aa0f846699ce9c61",
      "repository": "https://github.com/c64lib/bitmap",
      "license": "MIT"
    },
    "fonts": {
      "version": "unreleased-2020-02-11",
      "commit": "7904f538ab0f50e64d403d23365d7b20aca84509",
      "repository": "https://github.com/c64lib/fonts",
      "license": "MIT"
    },
    "goatTracker": {
      "version": "2.77",
      "commit": "sourceforge-release-2.77",
      "repository": "https://sourceforge.net/projects/goattracker2/files/GoatTracker%202/2.77/",
      "license": "GPL-2.0-or-later",
      "bundled": false
    },
    "exomizer": {
      "version": "3.1.2",
      "commit": "ba91318e02bc0f69e437379a84348d416c4a19aa",
      "repository": "https://bitbucket.org/magli143/exomizer",
      "license": "zlib",
      "bundled": true
    }
  },
  "compatibility": {
    "version": 3,
    "abiVersion": 1,
    "assetContractVersion": 1,
    "zeroPageRegistryVersion": 2,
    "modules": [
      {
        "id": "c64lib.common",
        "source": {
          "version": "0.5.1",
          "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
          "repository": "https://github.com/c64lib/common",
          "license": "MIT"
        },
        "dependencies": [],
        "includes": [
          "web64/c64lib/common.inc"
        ],
        "headers": [
          "c64lib/common.h"
        ],
        "publicApi": [
          "memory macros",
          "16-bit arithmetic macros",
          "far branches",
          "hardware invoke stack",
          "RLE codec",
          "Exomizer P39 codec",
          "copy/fill/decompress/rotate runtime"
        ],
        "runtimeRoutines": [
          "common.decompress-rle",
          "common.exomizer-decrunch",
          "common.copy-large-forward",
          "common.copy-large-backward",
          "common.fill-memory",
          "common.fill-screen",
          "common.rotate-memory"
        ],
        "processors": [
          "rle-encode",
          "rle-decode",
          "exomizer-mem-crunch",
          "exomizer-raw-crunch",
          "exomizer-raw-decrunch"
        ],
        "zeroPageClaims": [],
        "memorySections": [
          "dependency-selected runtime code and private state"
        ],
        "initialization": "none",
        "interruptSafety": "routine-specific",
        "supportedTargets": [
          "prg",
          "test",
          "magic-desk-crt"
        ],
        "tests": [
          "c64lib-compatibility-suite"
        ],
        "documentation": "public/docs/c64lib-compatibility.md",
        "license": "MIT",
        "attribution": "https://github.com/c64lib/common"
      },
      {
        "id": "c64lib.chipset",
        "source": {
          "version": "0.5.1",
          "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
          "repository": "https://github.com/c64lib/chipset",
          "license": "MIT"
        },
        "dependencies": [
          "c64lib.common"
        ],
        "includes": [
          "web64/c64lib/chipset.inc"
        ],
        "headers": [
          "c64lib/chipset.h",
          "c64lib/vic2.h",
          "c64lib/sprites.h"
        ],
        "publicApi": [
          "CIA and MOS 6510 constants",
          "VIC-II constants and mode macros",
          "sprite positioning",
          "raster/IRQ helpers"
        ],
        "runtimeRoutines": [
          "chipset.set-vic-bank",
          "chipset.disable-cia-interrupts",
          "chipset.configure-memory",
          "chipset.set-raster",
          "chipset.detect-ntsc",
          "chipset.sprite-set-x",
          "chipset.sprite-set-y",
          "chipset.sprite-set-position"
        ],
        "processors": [],
        "zeroPageClaims": [],
        "memorySections": [
          "dependency-selected runtime code and private state"
        ],
        "initialization": "none; callers explicitly configure banking and interrupts",
        "interruptSafety": "register macros are context-dependent; C wrappers are not implicitly IRQ-safe",
        "supportedTargets": [
          "prg",
          "test",
          "magic-desk-crt"
        ],
        "tests": [
          "c64lib-compatibility-suite"
        ],
        "documentation": "public/docs/c64lib-compatibility.md",
        "license": "MIT",
        "attribution": "https://github.com/c64lib/chipset"
      },
      {
        "id": "c64lib.text",
        "source": {
          "version": "0.5.1",
          "commit": "b5fa872d2a43c1690666444d223603728b346a14",
          "repository": "https://github.com/c64lib/text",
          "license": "MIT"
        },
        "dependencies": [
          "c64lib.common",
          "c64lib.chipset"
        ],
        "includes": [
          "web64/c64lib/text.inc"
        ],
        "headers": [
          "c64lib/text.h"
        ],
        "publicApi": [
          "screen coordinates",
          "text and hexadecimal output",
          "increment/copy",
          "screen shifts",
          "1x1 scroll",
          "2x2 tile draw",
          "stateful four-direction Tile2 engine"
        ],
        "runtimeRoutines": [
          "text.increment",
          "text.copy-screen-block",
          "text.shift-left",
          "text.shift-right",
          "text.shift-up",
          "text.shift-down",
          "text.putxy",
          "text.hex8",
          "text.scroll1x1",
          "text.draw-tile2",
          "text.tile2-init",
          "text.tile2-render",
          "text.tile2-scroll-left",
          "text.tile2-scroll-right",
          "text.tile2-scroll-up",
          "text.tile2-scroll-down",
          "text.tile2-material-at"
        ],
        "processors": [
          "charpad-adapter",
          "tile2-adapt"
        ],
        "zeroPageClaims": [],
        "memorySections": [
          "dependency-selected runtime code and private state"
        ],
        "initialization": "caller supplies screen, Color RAM, and asset addresses",
        "interruptSafety": "not IRQ-safe unless the selected routine is externally serialized",
        "supportedTargets": [
          "prg",
          "test",
          "magic-desk-crt"
        ],
        "tests": [
          "c64lib-compatibility-suite"
        ],
        "documentation": "public/docs/c64lib-compatibility.md",
        "license": "MIT",
        "attribution": "https://github.com/c64lib/text"
      },
      {
        "id": "c64lib.copper64",
        "source": {
          "version": "0.6.0",
          "commit": "6d4b0920db0b0ddfd42976dc7c9ddc77c766244d",
          "repository": "https://github.com/c64lib/copper64",
          "license": "MIT"
        },
        "dependencies": [
          "c64lib.common",
          "c64lib.chipset"
        ],
        "includes": [
          "web64/c64lib/copper64.inc"
        ],
        "headers": [
          "c64lib/copper64.h"
        ],
        "publicApi": [
          "four-byte display-list entries",
          "handler IDs 1..22",
          "start/stop",
          "guarded C callback wrapper"
        ],
        "runtimeRoutines": [
          "copper64.start",
          "copper64.stop"
        ],
        "processors": [],
        "zeroPageClaims": [],
        "memorySections": [
          "dependency-selected runtime code and private state"
        ],
        "initialization": "disable conflicting CIA IRQ sources, then call start with an immutable list of at most 256 bytes",
        "interruptSafety": "dispatcher owns the KERNAL IRQ vector while active; C callbacks require the guarded wrapper",
        "supportedTargets": [
          "prg",
          "magic-desk-crt"
        ],
        "tests": [
          "c64lib-compatibility-suite"
        ],
        "documentation": "public/docs/c64lib-compatibility.md",
        "license": "MIT",
        "attribution": "https://github.com/c64lib/copper64"
      },
      {
        "id": "c64lib.bitmap",
        "source": {
          "version": "unreleased-2021-08-26",
          "commit": "9754d2c372a4c875c2ebbad8aa0f846699ce9c61",
          "repository": "https://github.com/c64lib/bitmap",
          "license": "MIT"
        },
        "dependencies": [
          "c64lib.chipset"
        ],
        "includes": [
          "web64/c64lib/bitmap.inc"
        ],
        "headers": [
          "c64lib/bitmap.h"
        ],
        "publicApi": [
          "six-byte BitmapTileConfig layout and field offsets"
        ],
        "runtimeRoutines": [],
        "processors": [
          "koala-adapter"
        ],
        "zeroPageClaims": [],
        "memorySections": [
          "dependency-selected runtime code and private state"
        ],
        "initialization": "none",
        "interruptSafety": "compile-time declarations only",
        "supportedTargets": [
          "prg",
          "test",
          "magic-desk-crt"
        ],
        "tests": [
          "c64lib-compatibility-suite"
        ],
        "documentation": "public/docs/c64lib-compatibility.md",
        "license": "MIT",
        "attribution": "https://github.com/c64lib/bitmap"
      },
      {
        "id": "c64lib.magic-desk-crt",
        "source": {
          "version": "1.0.0",
          "commit": "6bc42e54efe0d1fac616a3848f8e7060348935f8",
          "repository": "https://github.com/c64lib/magic-desk-crt",
          "license": "MIT"
        },
        "dependencies": [
          "c64lib.common",
          "c64lib.chipset"
        ],
        "includes": [
          "web64/c64lib/magic-desk-crt.inc"
        ],
        "headers": [
          "c64lib/magic-desk.h"
        ],
        "publicApi": [
          "Magic Desk cartridge constants",
          "bootstrap declaration",
          "bank loader",
          "C loader wrappers"
        ],
        "runtimeRoutines": [
          "magic-desk.set-target",
          "magic-desk.copy"
        ],
        "processors": [
          "magic-desk-crt"
        ],
        "zeroPageClaims": [],
        "memorySections": [
          "dependency-selected runtime code and private state"
        ],
        "initialization": "cartridge bootstrap installs the selected loader and establishes the requested memory configuration",
        "interruptSafety": "bank switching and cartridge copies are mainline-only unless the caller owns all interrupt banking state",
        "supportedTargets": [
          "magic-desk-crt"
        ],
        "tests": [
          "c64lib-compatibility-suite"
        ],
        "documentation": "public/docs/c64lib-compatibility.md",
        "license": "MIT",
        "attribution": "https://github.com/c64lib/magic-desk-crt"
      },
      {
        "id": "c64lib.64spec",
        "source": {
          "version": "0.7.0pr",
          "commit": "bbf79e7b76a407725b0ba827e52e8372cf3aea69",
          "repository": "https://github.com/c64lib/64spec",
          "license": "MIT"
        },
        "dependencies": [
          "c64lib.common",
          "c64lib.text"
        ],
        "includes": [
          "web64/c64lib/64spec.inc"
        ],
        "headers": [
          "c64lib/64spec.h"
        ],
        "publicApi": [
          "test initialization",
          "byte/register/status assertions",
          "test counters",
          "result rendering"
        ],
        "runtimeRoutines": [
          "64spec.reset",
          "64spec.assert-equal",
          "64spec.assert-not-equal",
          "64spec.assert-less",
          "64spec.assert-less-or-equal",
          "64spec.assert-greater",
          "64spec.assert-greater-or-equal",
          "64spec.assert-mask-set",
          "64spec.assert-mask-clear",
          "64spec.compare-bytes",
          "64spec.assert-bytes-equal",
          "64spec.assert-bytes-not-equal",
          "64spec.finish"
        ],
        "processors": [],
        "zeroPageClaims": [],
        "memorySections": [
          "dependency-selected runtime code and private state"
        ],
        "initialization": "test target initializes its result block before invoking tests",
        "interruptSafety": "test runtime is mainline-only",
        "supportedTargets": [
          "prg",
          "test"
        ],
        "tests": [
          "c64lib-compatibility-suite"
        ],
        "documentation": "public/docs/c64lib-compatibility.md",
        "license": "MIT",
        "attribution": "https://github.com/c64lib/64spec"
      }
    ],
    "differences": [
      "Web64 syntax is authoritative; guided migration translates KickAssembler-only source forms.",
      "Compatibility is source or semantic compatibility, not KickAssembler binary compatibility.",
      "Arbitrary Gradle command processors and the general KickAssembler compile-time language are intentionally unsupported.",
      "Compatibility wrappers remain boundary adapters and never replace a smaller or faster native Web64 lowering."
    ],
    "performanceIsolation": {
      "unselectedModulesAddBytes": 0,
      "unusedSelectedModulesAddBytes": 0,
      "nativeLoweringPrecedence": true,
      "wrappersAreBoundaryAdapters": true
    },
    "diagnostics": []
  },
  "ledger": [
    {
      "id": "common.constants",
      "classification": "source-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Assembler vector constants",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Assembler vector constants",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 include path is used; official c64lib.* constants remain available where practical",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/common.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": true,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/common.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.character-literals",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Token-aware migration converts c64lib ch/cm literals into deterministic bytes",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Token-aware migration converts c64lib ch/cm literals into deterministic bytes",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Token-aware migration converts c64lib ch/cm literals into deterministic bytes",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib-migration.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib-migration.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.far-branches",
      "classification": "source-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Far BNE/BMI branch-over-jump macros",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Far BNE/BMI branch-over-jump macros",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 include path is used; official c64lib.* constants remain available where practical",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/common.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": true,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/common.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.memory-macros",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Set/copy/fill/compare/rotate macros in Web64 syntax",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Set/copy/fill/compare/rotate macros in Web64 syntax",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Set/copy/fill/compare/rotate macros in Web64 syntax",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/common.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/common.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.math-macros",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Immediate and memory 16-bit arithmetic, shift, increment, decrement, multiply-add",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Immediate and memory 16-bit arithmetic, shift, increment, decrement, multiply-add",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Immediate and memory 16-bit arithmetic, shift, increment, decrement, multiply-add",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/common.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/common.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.invoke-stack",
      "classification": "source-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Hardware-stack invocation macros remain separate from the canonical Web64-C ABI",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Hardware-stack invocation macros remain separate from the canonical Web64-C ABI",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 include path is used; official c64lib.* constants remain available where practical",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/common.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": true,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/common.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.rle-compressor",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Browser-native deterministic RLE processor",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Browser-native deterministic RLE processor",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Browser-native deterministic RLE processor",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib-processors.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib-processors.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.rle-decompressor",
      "classification": "semantically-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Dependency-selected 6502 runtime",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Dependency-selected 6502 runtime",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Dependency-selected 6502 runtime",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "common.decompress-rle",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "common.decompress-rle"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.copy-and-fill-routines",
      "classification": "semantically-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Dependency-selected forward/backward copy and fill routines",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Dependency-selected forward/backward copy and fill routines",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Dependency-selected forward/backward copy and fill routines",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/common.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/common.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.rotate-memory-routine",
      "classification": "semantically-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "d9b508f62649a9e15d4b3dbee2ae99b3f402bd5e",
        "repository": "https://github.com/c64lib/common",
        "license": "MIT"
      },
      "publicContract": "Fixed-count macro and dynamic C/assembly runtime",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Fixed-count macro and dynamic C/assembly runtime",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Fixed-count macro and dynamic C/assembly runtime",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/common.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/common.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "common.exomizer",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "3.1.2",
        "commit": "ba91318e02bc0f69e437379a84348d416c4a19aa",
        "repository": "https://bitbucket.org/magli143/exomizer",
        "license": "zlib",
        "bundled": true
      },
      "publicContract": "Lazy browser-native Exomizer 3.1.2 codec and dependency-selected backward P39 decruncher",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Lazy browser-native Exomizer 3.1.2 codec and dependency-selected backward P39 decruncher",
      "moduleId": "c64lib.common",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Lazy browser-native Exomizer 3.1.2 codec and dependency-selected backward P39 decruncher",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "exomizer-codec.test.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "exomizer-codec.test.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.cia-registers",
      "classification": "source-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "CIA register, joystick, and VIC bank constants plus bank/IRQ macros",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "CIA register, joystick, and VIC bank constants plus bank/IRQ macros",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 include path is used; official c64lib.* constants remain available where practical",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/chipset.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": true,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/chipset.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.mos6510-memory",
      "classification": "source-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "6510 port and PLA constants plus memory configuration macro",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "6510 port and PLA constants plus memory configuration macro",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 include path is used; official c64lib.* constants remain available where practical",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/chipset.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": true,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/chipset.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.disable-nmi",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "Explicit RAM-vector NMI stub with ROM-banking diagnostics",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Explicit RAM-vector NMI stub with ROM-banking diagnostics",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Explicit RAM-vector NMI stub with ROM-banking diagnostics",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/chipset.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/chipset.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.vic2-registers",
      "classification": "source-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "VIC-II registers, masks, display modes, and raster constants",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "VIC-II registers, masks, display modes, and raster constants",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 include path is used; official c64lib.* constants remain available where practical",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/chipset.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": true,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/chipset.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.vic2-memory-mode",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "Text/bitmap memory and display-mode macros",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Text/bitmap memory and display-mode macros",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Text/bitmap memory and display-mode macros",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/chipset.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/chipset.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.vic2-raster-irq",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "Nine-bit raster and direct-vector IRQ entry/exit macros",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Nine-bit raster and direct-vector IRQ entry/exit macros",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Nine-bit raster and direct-vector IRQ entry/exit macros",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/chipset.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/chipset.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.vic2-ntsc-detect",
      "classification": "semantically-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "PAL/NTSC detection result and callback adapters",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "PAL/NTSC detection result and callback adapters",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "PAL/NTSC detection result and callback adapters",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/chipset.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/chipset.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.vic2-char-transform",
      "classification": "semantically-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "In-place right and downward character rotation macros",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "In-place right and downward character rotation macros",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "In-place right and downward character rotation macros",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/chipset.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/chipset.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.sprites",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "Nine-bit sprite positioning macros and C wrappers",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Nine-bit sprite positioning macros and C wrappers",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Nine-bit sprite positioning macros and C wrappers",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/sprites.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/sprites.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "chipset.sprite-line-literals",
      "classification": "replaced-by-existing-web64-feature",
      "authority": {
        "version": "0.5.1",
        "commit": "e91455ba6f4f87e2d0d4e7604215e52db9e96ee2",
        "repository": "https://github.com/c64lib/chipset",
        "license": "MIT"
      },
      "publicContract": "Sprite Editor and binary asset contract replace compile-time string encoding",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Sprite Editor and binary asset contract replace compile-time string encoding",
      "moduleId": "c64lib.chipset",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Sprite Editor and binary asset contract replace compile-time string encoding",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "sprite-editor",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "sprite-editor"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "text.output",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "b5fa872d2a43c1690666444d223603728b346a14",
        "repository": "https://github.com/c64lib/text",
        "license": "MIT"
      },
      "publicContract": "C-callable text and hexadecimal output",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "C-callable text and hexadecimal output",
      "moduleId": "c64lib.text",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "C-callable text and hexadecimal output",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/text.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/text.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "text.increment-and-copy",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "b5fa872d2a43c1690666444d223603728b346a14",
        "repository": "https://github.com/c64lib/text",
        "license": "MIT"
      },
      "publicContract": "Runtime text increment and parameterized screen block copy",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Runtime text increment and parameterized screen block copy",
      "moduleId": "c64lib.text",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Runtime text increment and parameterized screen block copy",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/text.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/text.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "text.scroll1x1",
      "classification": "semantically-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "b5fa872d2a43c1690666444d223603728b346a14",
        "repository": "https://github.com/c64lib/text",
        "license": "MIT"
      },
      "publicContract": "Dependency-selected screen shift routine",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Dependency-selected screen shift routine",
      "moduleId": "c64lib.text",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Dependency-selected screen shift routine",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "text.scroll1x1",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "text.scroll1x1"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "text.tiles2x2-draw",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "b5fa872d2a43c1690666444d223603728b346a14",
        "repository": "https://github.com/c64lib/text",
        "license": "MIT"
      },
      "publicContract": "C-callable four-character/two-row draw primitive",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "C-callable four-character/two-row draw primitive",
      "moduleId": "c64lib.text",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "C-callable four-character/two-row draw primitive",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/text.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/text.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "text.tiles2x2-engine",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.5.1",
        "commit": "b5fa872d2a43c1690666444d223603728b346a14",
        "repository": "https://github.com/c64lib/text",
        "license": "MIT"
      },
      "publicContract": "Canonical Web64 map/block descriptors drive initialization, directional decode, bounded shifts, edge refill, Color RAM, offsets, and materials",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Canonical Web64 map/block descriptors drive initialization, directional decode, bounded shifts, edge refill, Color RAM, offsets, and materials",
      "moduleId": "c64lib.text",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Canonical Web64 map/block descriptors drive initialization, directional decode, bounded shifts, edge refill, Color RAM, offsets, and materials",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib-tile2.test.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib-tile2.test.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "text.tiles2x2-shifts",
      "classification": "semantically-compatible",
      "authority": {
        "version": "0.5.1",
        "commit": "b5fa872d2a43c1690666444d223603728b346a14",
        "repository": "https://github.com/c64lib/text",
        "license": "MIT"
      },
      "publicContract": "Screen and Color RAM shifts plus edge decode",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Screen and Color RAM shifts plus edge decode",
      "moduleId": "c64lib.text",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Screen and Color RAM shifts plus edge decode",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/text.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/text.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "copper64.list-format",
      "classification": "source-compatible",
      "authority": {
        "version": "0.6.0",
        "commit": "6d4b0920db0b0ddfd42976dc7c9ddc77c766244d",
        "repository": "https://github.com/c64lib/copper64",
        "license": "MIT"
      },
      "publicContract": "Four-byte copper entries and control codes",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Four-byte copper entries and control codes",
      "moduleId": "c64lib.copper64",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 include path is used; official c64lib.* constants remain available where practical",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/copper64.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": true,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/copper64.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "copper64.handlers",
      "classification": "semantically-compatible",
      "authority": {
        "version": "0.6.0",
        "commit": "6d4b0920db0b0ddfd42976dc7c9ddc77c766244d",
        "repository": "https://github.com/c64lib/copper64",
        "license": "MIT"
      },
      "publicContract": "All public handler IDs 1..22 execute their documented VIC-II operation",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "All public handler IDs 1..22 execute their documented VIC-II operation",
      "moduleId": "c64lib.copper64",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "All public handler IDs 1..22 execute their documented VIC-II operation",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/copper64.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/copper64.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "copper64.dispatcher",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.6.0",
        "commit": "6d4b0920db0b0ddfd42976dc7c9ddc77c766244d",
        "repository": "https://github.com/c64lib/copper64",
        "license": "MIT"
      },
      "publicContract": "KERNAL-vector Web64 IRQ dispatcher with no persistent zero-page claim",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "KERNAL-vector Web64 IRQ dispatcher with no persistent zero-page claim",
      "moduleId": "c64lib.copper64",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none; list address is installed into runtime read operands",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "KERNAL-vector Web64 IRQ dispatcher with no persistent zero-page claim",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/copper64.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/copper64.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "copper64.stabilization",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.6.0",
        "commit": "6d4b0920db0b0ddfd42976dc7c9ddc77c766244d",
        "repository": "https://github.com/c64lib/copper64",
        "license": "MIT"
      },
      "publicContract": "Direct jump-table dispatch with a KERNAL-safe saved outer stack pointer, upstream-style double-IRQ stabilization, line-sequenced raster handlers, and explicit PAL/NTSC contracts",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Direct jump-table dispatch with a KERNAL-safe saved outer stack pointer, upstream-style double-IRQ stabilization, line-sequenced raster handlers, and explicit PAL/NTSC contracts",
      "moduleId": "c64lib.copper64",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "handler-specific PAL 6569 and NTSC 6567R8 contracts; stabilized handlers permit at most one cycle of jitter, while byte-semantic and badline-sensitive handlers retain explicit weaker contracts",
      "compatibilityLimitations": "Direct jump-table dispatch with a KERNAL-safe saved outer stack pointer, upstream-style double-IRQ stabilization, line-sequenced raster handlers, and explicit PAL/NTSC contracts",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib-copper-runtime.test.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib-copper-runtime.test.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "copper64.c-callback",
      "classification": "requires-abi-shim",
      "authority": {
        "version": "0.6.0",
        "commit": "6d4b0920db0b0ddfd42976dc7c9ddc77c766244d",
        "repository": "https://github.com/c64lib/copper64",
        "license": "MIT"
      },
      "publicContract": "Pay-for-use guarded no-argument Web64-C callback wrapper",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Pay-for-use guarded no-argument Web64-C callback wrapper",
      "moduleId": "c64lib.copper64",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "guarded callback preserves Web64-C ABI zero page",
      "interruptSafety": "approved only through web64_c64lib_guarded_c_callback",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Pay-for-use guarded no-argument Web64-C callback wrapper",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/copper64.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/copper64.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "processor.charpad",
      "classification": "replaced-by-existing-web64-feature",
      "authority": {
        "version": "1.8.0",
        "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
        "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
        "license": "MIT"
      },
      "publicContract": "CTM 5-9 import and CTM 5/9 export",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "CTM 5-9 import and CTM 5/9 export",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "CTM 5-9 import and CTM 5/9 export",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "tile-editor/charpad-ctm.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "tile-editor/charpad-ctm.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "processor.spritepad",
      "classification": "replaced-by-existing-web64-feature",
      "authority": {
        "version": "1.8.0",
        "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
        "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
        "license": "MIT"
      },
      "publicContract": "Fixture-backed SpritePad import/export",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "Fixture-backed SpritePad import/export",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Fixture-backed SpritePad import/export",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "sprite-editor/spritepad-codec.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "sprite-editor/spritepad-codec.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "processor.koala",
      "classification": "replaced-by-existing-web64-feature",
      "authority": {
        "version": "1.8.0",
        "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
        "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
        "license": "MIT"
      },
      "publicContract": "Web64 Koala conversion workflow",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "Web64 Koala conversion workflow",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 Koala conversion workflow",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "tile-editor/koala-import.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "tile-editor/koala-import.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "processor.image",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "1.8.0",
        "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
        "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
        "license": "MIT"
      },
      "publicContract": "Browser-native editor import and conversion workers",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "Browser-native editor import and conversion workers",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Browser-native editor import and conversion workers",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "sprite-editor",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "sprite-editor"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "processor.nybbler",
      "classification": "semantically-compatible",
      "authority": {
        "version": "1.8.0",
        "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
        "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
        "license": "MIT"
      },
      "publicContract": "Browser-native low/high nibble plane splitting with optional high-plane normalization",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "Browser-native low/high nibble plane splitting with optional high-plane normalization",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Browser-native low/high nibble plane splitting with optional high-plane normalization",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib-processors.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib-processors.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "processor.goattracker-sng",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "2.77",
        "commit": "sourceforge-release-2.77",
        "repository": "https://sourceforge.net/projects/goattracker2/files/GoatTracker%202/2.77/",
        "license": "GPL-2.0-or-later",
        "bundled": false
      },
      "publicContract": "Standard GoatTracker 2 GTS3-GTS5 songs and GTI3-GTI5 instruments map into editable W64SID v3 state; export rebuilds GTS5/GTI5 from current semantic data",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "Standard GoatTracker 2 GTS3-GTS5 songs and GTI3-GTI5 instruments map into editable W64SID v3 state; export rebuilds GTS5/GTI5 from current semantic data",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Standard GoatTracker 2 GTS3-GTS5 songs and GTI3-GTI5 instruments map into editable W64SID v3 state; export rebuilds GTS5/GTI5 from current semantic data",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "goattracker-sng.test.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "goattracker-sng.test.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "processor.external-command",
      "classification": "intentionally-unsupported",
      "authority": {
        "version": "1.8.0",
        "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
        "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
        "license": "MIT"
      },
      "publicContract": "Arbitrary host commands cannot run in browser builds",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "Arbitrary host commands cannot run in browser builds",
      "moduleId": null,
      "assemblyAvailability": "unsupported",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Arbitrary host commands cannot run in browser builds",
      "migrationGuidance": "retain the original source and follow the migration diagnostic",
      "evidence": "migration diagnostic",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": false,
      "binaryCompatibility": false,
      "workflowCompatibility": false,
      "verification": "explicit compatibility diagnostic and compatibility ledger entry",
      "completionEvidence": [
        "explicit compatibility diagnostic",
        "migration diagnostic"
      ],
      "status": "intentionally-unsupported"
    },
    {
      "id": "build.gradle-jvm",
      "classification": "replaced-by-existing-web64-feature",
      "authority": {
        "version": "1.8.0",
        "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
        "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
        "license": "MIT"
      },
      "publicContract": "Build Targets, generated assets, workers, and browser linker replace Gradle/JVM orchestration",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "Build Targets, generated assets, workers, and browser linker replace Gradle/JVM orchestration",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Build Targets, generated assets, workers, and browser linker replace Gradle/JVM orchestration",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "build-targets.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "build-targets.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "bitmap.tile-config",
      "classification": "compile-time-only",
      "authority": {
        "version": "unreleased-2021-08-26",
        "commit": "9754d2c372a4c875c2ebbad8aa0f846699ce9c61",
        "repository": "https://github.com/c64lib/bitmap",
        "license": "MIT"
      },
      "publicContract": "Six-byte bitmap tile configuration layout and field offsets",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Six-byte bitmap tile configuration layout and field offsets",
      "moduleId": "c64lib.bitmap",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Six-byte bitmap tile configuration layout and field offsets",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/bitmap.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": false,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/bitmap.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "fonts.repository",
      "classification": "intentionally-unsupported",
      "authority": {
        "version": "unreleased-2020-02-11",
        "commit": "7904f538ab0f50e64d403d23365d7b20aca84509",
        "repository": "https://github.com/c64lib/fonts",
        "license": "MIT"
      },
      "publicContract": "The pinned official Fonts repository contains no distributable font data or public runtime contract",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "The pinned official Fonts repository contains no distributable font data or public runtime contract",
      "moduleId": null,
      "assemblyAvailability": "unsupported",
      "cAvailability": "header, ABI wrapper, or documented assembly shim where listed",
      "requiredDependencies": [],
      "zeroPageUsage": "declared by selected runtime; call scratch may overlay compiler call scratch",
      "memoryUsage": "dependency-selected code and private state; emitted only when referenced",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "routine-specific; A/X/Y and flags unless the public wrapper states otherwise",
      "reentrancy": "not assumed reentrant unless verified by its focused test",
      "interruptSafety": "not implicitly IRQ-safe",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "The pinned official Fonts repository contains no distributable font data or public runtime contract",
      "migrationGuidance": "retain the original source and follow the migration diagnostic",
      "evidence": "compatibility manifest authority record",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": false,
      "binaryCompatibility": false,
      "workflowCompatibility": false,
      "verification": "explicit compatibility diagnostic and compatibility ledger entry",
      "completionEvidence": [
        "explicit compatibility diagnostic",
        "compatibility manifest authority record"
      ],
      "status": "intentionally-unsupported"
    },
    {
      "id": "testing.64spec",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "0.7.0pr",
        "commit": "bbf79e7b76a407725b0ba827e52e8372cf3aea69",
        "repository": "https://github.com/c64lib/64spec",
        "license": "MIT"
      },
      "publicContract": "64spec assertion families, state preservation, and Web64 test-target result block",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "64spec assertion families, state preservation, and Web64 test-target result block",
      "moduleId": "c64lib.64spec",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.text"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "64spec assertion families, state preservation, and Web64 test-target result block",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/64spec.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/64spec.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "testing.64spec-hosted-reporting",
      "classification": "replaced-by-existing-web64-feature",
      "authority": {
        "version": "0.7.0pr",
        "commit": "bbf79e7b76a407725b0ba827e52e8372cf3aea69",
        "repository": "https://github.com/c64lib/64spec",
        "license": "MIT"
      },
      "publicContract": "Web64 test-target metadata, debugger inspection, and automation replace KickAssembler-hosted display/file configuration",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Web64 test-target metadata, debugger inspection, and automation replace KickAssembler-hosted display/file configuration",
      "moduleId": "c64lib.64spec",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.text"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 test-target metadata, debugger inspection, and automation replace KickAssembler-hosted display/file configuration",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "target-build.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": false,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "target-build.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "magic-desk.bootstrap",
      "classification": "source-compatible",
      "authority": {
        "version": "1.0.0",
        "commit": "6bc42e54efe0d1fac616a3848f8e7060348935f8",
        "repository": "https://github.com/c64lib/magic-desk-crt",
        "license": "MIT"
      },
      "publicContract": "CBM80 bootstrap with caller-declared scratch locations",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "CBM80 bootstrap with caller-declared scratch locations",
      "moduleId": "c64lib.magic-desk-crt",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Web64 include path is used; official c64lib.* constants remain available where practical",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "web64/c64lib/magic-desk-crt.inc",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": true,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "web64/c64lib/magic-desk-crt.inc"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "magic-desk.loader",
      "classification": "semantically-compatible",
      "authority": {
        "version": "1.0.0",
        "commit": "6bc42e54efe0d1fac616a3848f8e7060348935f8",
        "repository": "https://github.com/c64lib/magic-desk-crt",
        "license": "MIT"
      },
      "publicContract": "Register ABI and C wrappers for target selection and contiguous bank copies",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Register ABI and C wrappers for target selection and contiguous bank copies",
      "moduleId": "c64lib.magic-desk-crt",
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [
        "c64lib.common",
        "c64lib.chipset"
      ],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Register ABI and C wrappers for target selection and contiguous bank copies",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib/magic-desk.h",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib/magic-desk.h"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "build.magic-desk-crt",
      "classification": "adapted-web64-implementation",
      "authority": {
        "version": "1.8.0",
        "commit": "3644230ef3ba3eea99eddcdde8cdb179db2adaed",
        "repository": "https://github.com/c64lib/gradle-retro-assembler-plugin",
        "license": "MIT"
      },
      "publicContract": "Browser-native CRT writer and emulator cartridge handoff",
      "originalImplementationDependency": "Gradle/JVM processor or task",
      "web64Strategy": "Browser-native CRT writer and emulator cartridge handoff",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Browser-native CRT writer and emulator cartridge handoff",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "magic-desk-crt.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "magic-desk-crt.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "performance.native-isolation",
      "classification": "semantically-compatible",
      "authority": null,
      "publicContract": "Unselected and unused compatibility modules add zero bytes and never replace faster native lowerings",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Unselected and unused compatibility modules add zero bytes and never replace faster native lowerings",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Unselected and unused compatibility modules add zero bytes and never replace faster native lowerings",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib-compat.test.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib-compat.test.mjs"
      ],
      "status": "implemented-v3"
    },
    {
      "id": "workflow.project-import",
      "classification": "adapted-web64-implementation",
      "authority": null,
      "publicContract": "Guided copy migration preserves originals under legacy-c64lib",
      "originalImplementationDependency": "KickAssembler source, macro, or hosted 6502 routine",
      "web64Strategy": "Guided copy migration preserves originals under legacy-c64lib",
      "moduleId": null,
      "assemblyAvailability": "available or replaced",
      "cAvailability": "constants/assets only unless separately listed",
      "requiredDependencies": [],
      "zeroPageUsage": "none",
      "memoryUsage": "no runtime bytes",
      "registerInputs": "declared by the selected macro, header, or wrapper contract",
      "registerOutputs": "void facilities return no scalar value; macro flags follow emitted 6502 instructions",
      "clobberedRegisters": "none at runtime",
      "reentrancy": "not applicable",
      "interruptSafety": "not applicable",
      "timing": "cycle checks required for timing-sensitive use; no blanket cycle-equivalence claim",
      "compatibilityLimitations": "Guided copy migration preserves originals under legacy-c64lib",
      "migrationGuidance": "use the guided migration or the Web64-native include/header listed as evidence",
      "evidence": "c64lib-migration.mjs",
      "compatibilityVersion": 3,
      "apiCompatibility": true,
      "sourceCompatibility": false,
      "semanticCompatibility": true,
      "binaryCompatibility": false,
      "workflowCompatibility": true,
      "verification": "c64lib-compatibility-suite or the focused evidence suite",
      "completionEvidence": [
        "c64lib-compatibility-suite",
        "c64lib-migration.mjs"
      ],
      "status": "implemented-v3"
    }
  ]
}
