// SPDX-License-Identifier: Apache-2.0
// @generated by tools/gen_abi_mbt.py from playground/mbel.abi.json.
// Do not edit by hand: change the JSON, then regenerate.
// Regenerate: python3 tools/gen_abi_mbt.py
// Verify:     python3 tools/gen_abi_mbt.py --check

///|
/// The canonical ABI manifest, byte-identical to
/// playground/mbel.abi.json (minified). Generated so the version and
/// export list have exactly one source.
fn abi_manifest() -> String {
  "{\"abiVersion\":1,\"engineVersion\":\"0.5.0\",\"functionsFileVersion\":1,\"artifacts\":[{\"file\":\"playgroun" +
  "d/mbel.wasm\",\"target\":\"wasm-gc\",\"callingConvention\":\"js-string\",\"hostRequirements\":{\"needsGcProp" +
  "osal\":true,\"needsJsStringBuiltins\":true,\"importedStringConstants\":\"_\",\"imports\":[\"__moonbit_time" +
  "_unstable.now\"],\"minNode\":24,\"browsers\":{\"chrome\":130,\"edge\":130,\"firefox\":134,\"safari\":\"18.4\"}}" +
  "},{\"file\":\"playground/mbel-cabi.wasm\",\"target\":\"wasm\",\"callingConvention\":\"mbel-cabi\",\"hostRequi" +
  "rements\":{\"needsGcProposal\":false,\"needsJsStringBuiltins\":false,\"importedStringConstants\":null,\"" +
  "imports\":[\"wasi_snapshot_preview1.fd_write\",\"__moonbit_time_unstable.now\"],\"minNode\":16,\"browser" +
  "s\":\"any MVP host\"}}],\"exports\":[{\"name\":\"abi_layout\",\"kind\":\"function\",\"params\":[],\"returns\":\"js" +
  "on\"},{\"name\":\"configure_session\",\"kind\":\"function\",\"params\":[\"handle\",\"limits_json\"],\"returns\":\"" +
  "json\"},{\"name\":\"create_session\",\"kind\":\"function\",\"params\":[\"funcs_json\",\"mode\",\"engine\",\"defaul" +
  "ts_json\"],\"returns\":\"json\"},{\"name\":\"describe_abi\",\"kind\":\"function\",\"params\":[],\"returns\":\"json" +
  "\"},{\"name\":\"describe_functions\",\"kind\":\"function\",\"params\":[\"funcs_json\"],\"returns\":\"json\"},{\"na" +
  "me\":\"describe_session\",\"kind\":\"function\",\"params\":[\"handle\"],\"returns\":\"json\"},{\"name\":\"disassem" +
  "ble\",\"kind\":\"function\",\"params\":[\"source\",\"env\"],\"returns\":\"json\"},{\"name\":\"dump_ast\",\"kind\":\"fu" +
  "nction\",\"params\":[\"source\"],\"returns\":\"json\"},{\"name\":\"eval_checked\",\"kind\":\"function\",\"params\":" +
  "[\"expr\",\"env\",\"engine\"],\"returns\":\"json\"},{\"name\":\"eval_expr\",\"kind\":\"function\",\"params\":[\"expr\"" +
  ",\"env\",\"engine\"],\"returns\":\"json\"},{\"name\":\"eval_jexl\",\"kind\":\"function\",\"params\":[\"expr\",\"env\"," +
  "\"engine\"],\"returns\":\"json\"},{\"name\":\"eval_session\",\"kind\":\"function\",\"params\":[\"handle\",\"expr\",\"" +
  "env\"],\"returns\":\"json\"},{\"name\":\"eval_with_functions\",\"kind\":\"function\",\"params\":[\"code\",\"env\",\"" +
  "funcs_json\",\"mode\",\"engine\"],\"returns\":\"json\"},{\"name\":\"eval_with_limits\",\"kind\":\"function\",\"par" +
  "ams\":[\"expr\",\"env\",\"engine\",\"limits_json\"],\"returns\":\"json\"},{\"name\":\"release_session\",\"kind\":\"f" +
  "unction\",\"params\":[\"handle\"],\"returns\":\"json\"},{\"name\":\"_start\",\"kind\":\"function\",\"abi\":false}]," +
  "\"errorEnvelope\":{\"message\":\"$error\",\"code\":\"$code\",\"position\":\"$pos\"},\"errorCodes\":[\"ENV_JSON\",\"" +
  "FUNCS_JSON\",\"FUNCS_VERSION\",\"FUNCS_INVALID\",\"MODE_UNKNOWN\",\"ENGINE_UNKNOWN\",\"HANDLE_UNKNOWN\",\"HA" +
  "NDLE_LIMIT\",\"LIMITS_INVALID\",\"PARSE_SYNTAX\",\"PARSE_EMPTY\",\"PARSE_TOO_LARGE\",\"PARSE_TOO_DEEP\",\"CH" +
  "ECK_TYPE\",\"CHECK_UNKNOWN_NAME\",\"CHECK_UNKNOWN_FUNCTION\",\"CHECK_ARITY\",\"CHECK_FUNC_BODY\",\"RUNTIME" +
  "_TYPE\",\"RUNTIME_UNKNOWN_CALL\",\"RUNTIME_RECURSION\",\"RUNTIME_BUDGET\",\"INTERNAL\"],\"limits\":{\"maxNod" +
  "es\":10000,\"maxDepth\":10000,\"maxSteps\":1000000,\"userfnDepth\":256},\"sessionLimit\":16}"
}