{
  "backends": [
    {
      "abi": "Each exported pure function uses named params; Bool maps to i32. I32/I64/Int map to i64 with signed division, remainder, and ordered comparisons; U32/U64 map to i64 with unsigned division, remainder, and ordered comparisons.",
      "artifact": ".wat",
      "id": "wasm",
      "memory": "No linear-memory ABI yet; Text, records, lists, maps, options, results, tagged variants, Json, Address, Bytes32, I128/U128, U256/Wei, and Duration layouts are not stable.",
      "name": "WebAssembly text",
      "status": "partial",
      "supports": {
        "effects": "not generated",
        "expressions": [
          "literal:int",
          "literal:bool",
          "var",
          "if",
          "let-inline",
          "binary-int-bool-op",
          "not"
        ],
        "functions": "Pure scalar functions over Bool, signed I32/I64/Int, and unsigned U32/U64 in the current i64 ABI.",
        "machines": "not generated"
      },
      "unsupported": [
        "wide integer types outside the 64-bit scalar ABI",
        "effectful functions",
        "machine execution",
        "host adapter calls",
        "Text operations",
        "records/lists/maps/options/results/variants",
        "higher-order callbacks",
        "pattern matching",
        "function calls"
      ],
      "validation": [
        "wasm-tools validate",
        "wat2wasm"
      ]
    },
    {
      "abi": "RV64 integer ABI: up to eight integer params in a0-a7, result in a0, callee saves s-registers used for parameters. I32/I64/Int use signed division, remainder, and ordered comparisons; U32/U64 use unsigned divu/remu/sltu lowering.",
      "artifact": ".s",
      "id": "riscv",
      "memory": "No heap/string/aggregate/tagged-variant memory convention yet.",
      "name": "RISC-V RV64 assembly",
      "status": "partial",
      "supports": {
        "effects": "not generated",
        "expressions": [
          "literal:int",
          "literal:bool",
          "var",
          "if",
          "let-inline",
          "binary-int-bool-op",
          "not"
        ],
        "functions": "Pure scalar functions over Bool, signed I32/I64/Int, and unsigned U32/U64 in the current RV64 integer ABI.",
        "machines": "not generated"
      },
      "unsupported": [
        "wide integer types outside the 64-bit scalar ABI",
        "more than eight params",
        "effectful functions",
        "machine execution",
        "Text operations",
        "records/lists/maps/options/results/variants",
        "higher-order callbacks",
        "pattern matching",
        "function calls"
      ],
      "validation": [
        "riscv64-unknown-elf-as",
        "riscv64-linux-gnu-as",
        "llvm-mc -triple=riscv64"
      ]
    },
    {
      "abi": "Public Solidity functions with mapped scalar parameter and return types; integer literals in arithmetic and comparisons are explicitly cast to the checked Capsulang operand type. Solidity owns signed/unsigned arithmetic and checked-overflow behavior for those mapped types.",
      "artifact": ".sol",
      "id": "solidity",
      "memory": "Solidity owns string memory; Bytes32, Json, Timestamp, Duration, QName, Probability, aggregate, and tagged-variant layouts are not stable.",
      "name": "Solidity contract",
      "status": "partial",
      "supports": {
        "effects": "view stubs only; live adapters are not contract behavior",
        "expressions": [
          "literal:int",
          "literal:bool",
          "literal:string",
          "var",
          "if",
          "let-inline",
          "typed-binary-int-bool-op",
          "not"
        ],
        "functions": "Pure deterministic functions over Bool, Text, Address, signed I32/I64/Int, and unsigned U32/U64/U256/Wei scalar values.",
        "machines": "not generated"
      },
      "unsupported": [
        "effect execution",
        "machine execution",
        "Text operators",
        "Bytes32/Json/Timestamp/Duration/QName/Probability scalars",
        "records/lists/maps/options/results/variants",
        "higher-order callbacks",
        "pattern matching",
        "function calls",
        "non-contract-safe effects"
      ],
      "validation": [
        "solc --bin"
      ]
    },
    {
      "abi": "Lean source is a proof artifact, not a runtime ABI. Capsulang Int maps to Int; unsigned-like integers map to Nat until refinement types land.",
      "artifact": ".lean",
      "id": "lean",
      "memory": "No runtime memory model; aggregate and tagged-variant values require proof-level encodings.",
      "name": "Lean definitions",
      "status": "partial",
      "supports": {
        "effects": "not generated",
        "expressions": [
          "literal:int",
          "literal:bool",
          "literal:string",
          "var",
          "if",
          "let-inline",
          "binary-op",
          "not"
        ],
        "functions": "Pure scalar functions as Lean definitions; unsupported functions become explicit axioms.",
        "machines": "not generated"
      },
      "unsupported": [
        "effectful functions",
        "machine execution",
        "Text operators",
        "records/lists/maps/options/results/variants",
        "higher-order callbacks",
        "pattern matching",
        "function calls"
      ],
      "validation": [
        "lean"
      ]
    },
    {
      "abi": "Exports one XState config and createMachine instance per Capsulang machine.",
      "artifact": ".xstate.ts",
      "id": "xstate",
      "memory": "Context defaults are JSON values; host code owns richer value coercion.",
      "name": "XState TypeScript",
      "status": "partial",
      "supports": {
        "effects": "host action metadata only",
        "expressions": [
          "serialized Capsulang expressions and IR metadata"
        ],
        "functions": "not generated",
        "machines": "Checked machine topology, events, context defaults, guards metadata, assignments metadata, effects metadata, retry/on-error metadata, timeout metadata."
      },
      "unsupported": [
        "standalone effect execution",
        "interpreter equivalence without host actions",
        "function generation"
      ],
      "validation": [
        "TypeScript/Vite build in the reference site",
        "structural JSON config checks"
      ]
    },
    {
      "abi": "W3C SCXML document with Capsulang extension attributes/elements for non-SCXML semantics.",
      "artifact": ".scxml",
      "id": "scxml",
      "memory": "Datamodel defaults are JSON string expressions; host interpreter owns type coercion.",
      "name": "SCXML",
      "status": "partial",
      "supports": {
        "effects": "Capsulang namespace extension elements only",
        "expressions": [
          "serialized Capsulang expressions in XML attributes"
        ],
        "functions": "not generated",
        "machines": "Checked machine topology, transitions, final states, datamodel defaults, timeout/retry/on-error metadata, effect metadata in Capsulang namespace."
      },
      "unsupported": [
        "standalone effect execution",
        "interpreter equivalence without host actions",
        "function generation"
      ],
      "validation": [
        "XML parse"
      ]
    },
    {
      "abi": "Exports React components for declared A2UI surfaces plus TypeScript contracts for machine events, effect intents, surface state, and surface actions.",
      "artifact": "react-target directory",
      "id": "react",
      "memory": "Surface state and actions use JSON-compatible TypeScript values; host runtime owns snapshot serialization and adapter payload coercion.",
      "name": "React A2UI bundle",
      "status": "partial",
      "supports": {
        "effects": "A2UI action callbacks and protocol/effect metadata only; host runtime executes effects.",
        "expressions": [
          "A2UI state schemas",
          "A2UI action payload schemas",
          "deterministic A2UI envelopes",
          "serialized host contract metadata"
        ],
        "functions": "not generated",
        "machines": "Typed host bindings, machine/event/effect contracts, and a host bridge hook."
      },
      "unsupported": [
        "standalone effect execution",
        "policy decisions",
        "credential issuance",
        "adapter transport",
        "ledger writes",
        "React app bundler configuration",
        "custom component library theming"
      ],
      "validation": [
        "structural React/TypeScript source checks"
      ]
    }
  ],
  "notes": [
    "Parser, checker, interpreter, and runtime semantics remain authoritative.",
    "Backend emitters expose explicit capability diagnostics; unsupported features are not silently promoted to generated behavior.",
    "Toolchain validation is opportunistic and records skipped status when the external tool is unavailable."
  ],
  "stability": "reference-partial",
  "version": "0.1"
}
