{
  "version": "0.0.22",
  "scalars": {
    "void": {
      "description": "This function does not return anything.",
      "c_arg": "void",
      "c_ret": "void",
      "host": "void"
    },
    "i32": {
      "description": "Signed integer, 32 bits (4 bytes.)",
      "c_arg": "int32_t",
      "c_ret": "int32_t",
      "host": "int32_t"
    },
    "u32": {
      "description": "Unsigned integer, 32 bits (4 bytes.)",
      "c_arg": "unt32_t",
      "c_ret": "unt32_t",
      "host": "unt32_t"
    },
    "u64": {
      "description": "Unsigned integer, 64 bits (8 bytes.)",
      "c_arg": "unt64_t",
      "c_ret": "unt64_t",
      "host": "unt64_t"
    },
    "f32": {
      "description": "Floating-point decimal, 32 bits (4 bytes.)",
      "c_arg": "float",
      "c_ret": "float",
      "host": "float"
    },
    "bool": {
      "description": "Boolean (true/false.)",
      "c_arg": "bool",
      "c_ret": "bool",
      "host": "bool"
    },
    "Image": {
      "description": "An image. 0 is \"the screen\".",
      "c_arg": "unt32_t",
      "c_ret": "unt32_t",
      "host": "unt32_t"
    },
    "Font": {
      "description": "A font. 0 is \"the default font\".",
      "c_arg": "unt32_t",
      "c_ret": "unt32_t",
      "host": "unt32_t"
    },
    "Sound": {
      "description": "A sound.",
      "c_arg": "unt32_t",
      "c_ret": "unt32_t",
      "host": "unt32_t"
    },
    "Tilemap": {
      "description": "A tilemap (a Tiled map, exported as JSON). 0 is an invalid tilemap.",
      "c_arg": "unt32_t",
      "c_ret": "unt32_t",
      "host": "unt32_t"
    },
    "string": {
      "description": "Pointer to a null-terminated UTF8 string. (char*)",
      "c_arg": "char*",
      "c_ret": "char*",
      "host": "char*"
    },
    "Vector[]": {
      "description": "An array of Vectors.",
      "requiresLength": true,
      "c_arg": "Vector*",
      "c_ret": "Vector*",
      "host": "pntr_vector*"
    },
    "i32[]": {
      "description": "An array of i32.",
      "requiresLength": true,
      "c_arg": "i32*",
      "c_ret": "i32*",
      "host": "int32_t*"
    }
  },
  "structs": {
    "SfxParams": {
      "description": "Sfx parameters.",
      "c_arg": "SfxParams*",
      "c_ret": "SfxParams*",
      "host": "SfxParams*",
      "members": {
        "randSeed": "u32",
        "waveType": "i32",
        "attackTime": "f32",
        "sustainTime": "f32",
        "sustainPunch": "f32",
        "decayTime": "f32",
        "startFrequency": "f32",
        "minFrequency": "f32",
        "slide": "f32",
        "deltaSlide": "f32",
        "vibratoDepth": "f32",
        "vibratoSpeed": "f32",
        "changeAmount": "f32",
        "changeSpeed": "f32",
        "squareDuty": "f32",
        "dutySweep": "f32",
        "repeatSpeed": "f32",
        "phaserOffset": "f32",
        "phaserSweep": "f32",
        "lpfCutoff": "f32",
        "lpfCutoffSweep": "f32",
        "lpfResonance": "f32",
        "hpfCutoff": "f32",
        "hpfCutoffSweep": "f32"
      }
    },
    "Dimensions": {
      "description": "The 2D size of something (width/height.)",
      "c_arg": "Dimensions*",
      "c_ret": "Dimensions*",
      "host": "pntr_vector*",
      "members": {
        "width": "i32",
        "height": "i32"
      }
    },
    "Vector": {
      "description": "The 2D position of something (x/y.)",
      "c_arg": "Vector*",
      "c_ret": "Vector*",
      "host": "pntr_vector*",
      "members": {
        "x": "i32",
        "y": "i32"
      }
    },
    "Rectangle": {
      "description": "The 2D position + size of something (x/y/w/h.)",
      "c_arg": "Rectangle*",
      "c_ret": "Rectangle*",
      "host": "pntr_rectangle*",
      "members": {
        "x": "i32",
        "y": "i32",
        "width": "i32",
        "height": "i32"
      }
    },
    "Color": {
      "description": "An RGBA color.",
      "c_arg": "Color*",
      "c_ret": "Color*",
      "host": "Null0Color*",
      "members": {
        "r": "u8",
        "g": "u8",
        "b": "u8",
        "a": "u8"
      }
    },
    "TilemapProp": {
      "description": "A custom property on a tilemap, layer, object, or tile. Only the member named by `type` is meaningful - a PROP_BOOL is 0/1 in `integer`, and a PROP_COLOR is RGBA bytes in `integer`.",
      "c_arg": "TilemapProp*",
      "c_ret": "TilemapProp*",
      "host": "Null0TilemapProp*",
      "members": {
        "name": "string",
        "type": "TilePropType",
        "integer": "i32",
        "number": "f32",
        "text": "string"
      }
    },
    "TilemapObject": {
      "description": "An object from an object-layer of a tilemap. This is the map's initial state - carts own whatever they spawn from it.",
      "c_arg": "TilemapObject*",
      "c_ret": "TilemapObject*",
      "host": "Null0TilemapObject*",
      "members": {
        "id": "i32",
        "name": "string",
        "type": "string",
        "gid": "i32",
        "x": "f32",
        "y": "f32",
        "width": "f32",
        "height": "f32",
        "rotation": "f32",
        "visible": "i32"
      }
    }
  },
  "enums": {
    "ImageFilter": {
      "description": "Potential image-filtering techniques for scale/etc.",
      "c_arg": "ImageFilter",
      "c_ret": "ImageFilter",
      "host": "pntr_filter",
      "enums": {
        "FILTER_NEARESTNEIGHBOR": 0,
        "FILTER_BILINEAR": 1,
        "FILTER_SMOOTH": 2
      }
    },
    "SfxPresetType": {
      "description": "Represents a Sfx preset type.",
      "c_arg": "SfxPresetType",
      "c_ret": "SfxPresetType",
      "host": "SfxPresetType",
      "enums": {
        "SFX_COIN": 0,
        "SFX_LASER": 1,
        "SFX_EXPLOSION": 2,
        "SFX_POWERUP": 3,
        "SFX_HURT": 4,
        "SFX_JUMP": 5,
        "SFX_SELECT": 6,
        "SFX_SYNTH": 7
      }
    },
    "Key": {
      "description": "Represents a keyboard key.",
      "c_arg": "Key",
      "c_ret": "Key",
      "host": "pntr_app_key",
      "enums": {
        "KEY_INVALID": 0,
        "KEY_SPACE": 32,
        "KEY_APOSTROPHE": 39,
        "KEY_COMMA": 44,
        "KEY_MINUS": 45,
        "KEY_PERIOD": 46,
        "KEY_SLASH": 47,
        "KEY_0": 48,
        "KEY_1": 49,
        "KEY_2": 50,
        "KEY_3": 51,
        "KEY_4": 52,
        "KEY_5": 53,
        "KEY_6": 54,
        "KEY_7": 55,
        "KEY_8": 56,
        "KEY_9": 57,
        "KEY_SEMICOLON": 59,
        "KEY_EQUAL": 61,
        "KEY_A": 65,
        "KEY_B": 66,
        "KEY_C": 67,
        "KEY_D": 68,
        "KEY_E": 69,
        "KEY_F": 70,
        "KEY_G": 71,
        "KEY_H": 72,
        "KEY_I": 73,
        "KEY_J": 74,
        "KEY_K": 75,
        "KEY_L": 76,
        "KEY_M": 77,
        "KEY_N": 78,
        "KEY_O": 79,
        "KEY_P": 80,
        "KEY_Q": 81,
        "KEY_R": 82,
        "KEY_S": 83,
        "KEY_T": 84,
        "KEY_U": 85,
        "KEY_V": 86,
        "KEY_W": 87,
        "KEY_X": 88,
        "KEY_Y": 89,
        "KEY_Z": 90,
        "KEY_LEFT_BRACKET": 91,
        "KEY_BACKSLASH": 92,
        "KEY_RIGHT_BRACKET": 93,
        "KEY_GRAVE_ACCENT": 96,
        "KEY_WORLD_1": 161,
        "KEY_WORLD_2": 162,
        "KEY_ESCAPE": 256,
        "KEY_ENTER": 257,
        "KEY_TAB": 258,
        "KEY_BACKSPACE": 259,
        "KEY_INSERT": 260,
        "KEY_DELETE": 261,
        "KEY_RIGHT": 262,
        "KEY_LEFT": 263,
        "KEY_DOWN": 264,
        "KEY_UP": 265,
        "KEY_PAGE_UP": 266,
        "KEY_PAGE_DOWN": 267,
        "KEY_HOME": 268,
        "KEY_END": 269,
        "KEY_CAPS_LOCK": 280,
        "KEY_SCROLL_LOCK": 281,
        "KEY_NUM_LOCK": 282,
        "KEY_PRINT_SCREEN": 283,
        "KEY_PAUSE": 284,
        "KEY_F1": 290,
        "KEY_F2": 291,
        "KEY_F3": 292,
        "KEY_F4": 293,
        "KEY_F5": 294,
        "KEY_F6": 295,
        "KEY_F7": 296,
        "KEY_F8": 297,
        "KEY_F9": 298,
        "KEY_F10": 299,
        "KEY_F11": 300,
        "KEY_F12": 301,
        "KEY_F13": 302,
        "KEY_F14": 303,
        "KEY_F15": 304,
        "KEY_F16": 305,
        "KEY_F17": 306,
        "KEY_F18": 307,
        "KEY_F19": 308,
        "KEY_F20": 309,
        "KEY_F21": 310,
        "KEY_F22": 311,
        "KEY_F23": 312,
        "KEY_F24": 313,
        "KEY_F25": 314,
        "KEY_KP_0": 320,
        "KEY_KP_1": 321,
        "KEY_KP_2": 322,
        "KEY_KP_3": 323,
        "KEY_KP_4": 324,
        "KEY_KP_5": 325,
        "KEY_KP_6": 326,
        "KEY_KP_7": 327,
        "KEY_KP_8": 328,
        "KEY_KP_9": 329,
        "KEY_KP_DECIMAL": 330,
        "KEY_KP_DIVIDE": 331,
        "KEY_KP_MULTIPLY": 332,
        "KEY_KP_SUBTRACT": 333,
        "KEY_KP_ADD": 334,
        "KEY_KP_ENTER": 335,
        "KEY_KP_EQUAL": 336,
        "KEY_LEFT_SHIFT": 340,
        "KEY_LEFT_CONTROL": 341,
        "KEY_LEFT_ALT": 342,
        "KEY_LEFT_SUPER": 343,
        "KEY_RIGHT_SHIFT": 344,
        "KEY_RIGHT_CONTROL": 345,
        "KEY_RIGHT_ALT": 346,
        "KEY_RIGHT_SUPER": 347,
        "KEY_MENU": 348
      }
    },
    "GamepadButton": {
      "description": "Represents a gamepad button.",
      "c_arg": "GamepadButton",
      "c_ret": "GamepadButton",
      "host": "pntr_app_gamepad_button",
      "enums": {
        "GAMEPAD_BUTTON_UNKNOWN": 0,
        "GAMEPAD_BUTTON_UP": 1,
        "GAMEPAD_BUTTON_RIGHT": 2,
        "GAMEPAD_BUTTON_DOWN": 3,
        "GAMEPAD_BUTTON_LEFT": 4,
        "GAMEPAD_BUTTON_Y": 5,
        "GAMEPAD_BUTTON_B": 6,
        "GAMEPAD_BUTTON_A": 7,
        "GAMEPAD_BUTTON_X": 8,
        "GAMEPAD_BUTTON_LEFT_SHOULDER": 9,
        "GAMEPAD_BUTTON_LEFT_TRIGGER": 10,
        "GAMEPAD_BUTTON_RIGHT_SHOULDER": 11,
        "GAMEPAD_BUTTON_RIGHT_TRIGGER": 12,
        "GAMEPAD_BUTTON_SELECT": 13,
        "GAMEPAD_BUTTON_MENU": 14,
        "GAMEPAD_BUTTON_START": 15,
        "GAMEPAD_BUTTON_LEFT_THUMB": 16,
        "GAMEPAD_BUTTON_RIGHT_THUMB": 17
      }
    },
    "MouseButton": {
      "description": "Represents a mouse button.",
      "c_arg": "MouseButton",
      "c_ret": "MouseButton",
      "host": "pntr_app_mouse_button",
      "enums": {
        "MOUSE_BUTTON_UNKNOWN": 0,
        "MOUSE_BUTTON_LEFT": 1,
        "MOUSE_BUTTON_RIGHT": 2,
        "MOUSE_BUTTON_MIDDLE": 3
      }
    },
    "TileLayerKind": {
      "description": "The kind of a layer in a tilemap.",
      "c_arg": "TileLayerKind",
      "c_ret": "TileLayerKind",
      "host": "TileLayerKind",
      "enums": {
        "LAYER_NONE": 0,
        "LAYER_TILE": 1,
        "LAYER_OBJECT": 2,
        "LAYER_IMAGE": 3,
        "LAYER_GROUP": 4
      }
    },
    "TilePropType": {
      "description": "The type of a tilemap property's value. Tiled's \"file\" properties arrive as PROP_STRING.",
      "c_arg": "TilePropType",
      "c_ret": "TilePropType",
      "host": "TilePropType",
      "enums": {
        "PROP_NONE": 0,
        "PROP_INT": 1,
        "PROP_BOOL": 2,
        "PROP_FLOAT": 3,
        "PROP_STRING": 4,
        "PROP_COLOR": 5
      }
    }
  },
  "constants": {
    "LIGHTGRAY": {
      "value": [
        200,
        200,
        200,
        255
      ],
      "type": "Color"
    },
    "GRAY": {
      "value": [
        130,
        130,
        130,
        255
      ],
      "type": "Color"
    },
    "DARKGRAY": {
      "value": [
        80,
        80,
        80,
        255
      ],
      "type": "Color"
    },
    "YELLOW": {
      "value": [
        253,
        249,
        0,
        255
      ],
      "type": "Color"
    },
    "GOLD": {
      "value": [
        255,
        203,
        0,
        255
      ],
      "type": "Color"
    },
    "ORANGE": {
      "value": [
        255,
        161,
        0,
        255
      ],
      "type": "Color"
    },
    "PINK": {
      "value": [
        255,
        109,
        194,
        255
      ],
      "type": "Color"
    },
    "RED": {
      "value": [
        230,
        41,
        55,
        255
      ],
      "type": "Color"
    },
    "MAROON": {
      "value": [
        190,
        33,
        55,
        255
      ],
      "type": "Color"
    },
    "GREEN": {
      "value": [
        0,
        228,
        48,
        255
      ],
      "type": "Color"
    },
    "LIME": {
      "value": [
        0,
        158,
        47,
        255
      ],
      "type": "Color"
    },
    "DARKGREEN": {
      "value": [
        0,
        117,
        44,
        255
      ],
      "type": "Color"
    },
    "SKYBLUE": {
      "value": [
        102,
        191,
        255,
        255
      ],
      "type": "Color"
    },
    "BLUE": {
      "value": [
        0,
        121,
        241,
        255
      ],
      "type": "Color"
    },
    "DARKBLUE": {
      "value": [
        0,
        82,
        172,
        255
      ],
      "type": "Color"
    },
    "PURPLE": {
      "value": [
        200,
        122,
        255,
        255
      ],
      "type": "Color"
    },
    "VIOLET": {
      "value": [
        135,
        60,
        190,
        255
      ],
      "type": "Color"
    },
    "DARKPURPLE": {
      "value": [
        112,
        31,
        126,
        255
      ],
      "type": "Color"
    },
    "BEIGE": {
      "value": [
        211,
        176,
        131,
        255
      ],
      "type": "Color"
    },
    "BROWN": {
      "value": [
        127,
        106,
        79,
        255
      ],
      "type": "Color"
    },
    "DARKBROWN": {
      "value": [
        76,
        63,
        47,
        255
      ],
      "type": "Color"
    },
    "WHITE": {
      "value": [
        255,
        255,
        255,
        255
      ],
      "type": "Color"
    },
    "BLACK": {
      "value": [
        0,
        0,
        0,
        255
      ],
      "type": "Color"
    },
    "BLANK": {
      "value": [
        0,
        0,
        0,
        0
      ],
      "type": "Color",
      "description": "Completely transparent."
    },
    "MAGENTA": {
      "value": [
        255,
        0,
        255,
        255
      ],
      "type": "Color"
    },
    "RAYWHITE": {
      "value": [
        245,
        245,
        245,
        255
      ],
      "type": "Color",
      "description": "A nice off-white, from Raylib."
    },
    "FONT_DEFAULT": {
      "value": 0,
      "type": "u32",
      "description": "The default fonts's number is 0"
    },
    "SCREEN": {
      "value": 0,
      "type": "u32",
      "description": "The screen's image number is 0"
    },
    "SCREEN_WIDTH": {
      "value": 640,
      "type": "i32",
      "description": "the width of the screen (in pixels)"
    },
    "SCREEN_HEIGHT": {
      "value": 480,
      "type": "i32",
      "description": "the height of the screen (in pixels)"
    },
    "NULL0_VERSION": {
      "value": "0.0.22",
      "type": "string",
      "description": "The current tagged version of null0 engine"
    }
  },
  "callbacks": {
    "buttonUp": {
      "description": "Mapped controller (keys and gamepad will trigger) callback for when a \"button\" is unpressed.",
      "args": {
        "button": "GamepadButton",
        "player": "u32"
      },
      "returns": "void"
    },
    "buttonDown": {
      "description": "Mapped controller (keys and gamepad will trigger) callback for when a \"button\" is pressed.",
      "args": {
        "button": "GamepadButton",
        "player": "u32"
      },
      "returns": "void"
    },
    "keyUp": {
      "description": "Called when keys are unpressed.",
      "args": {
        "key": "Key"
      },
      "returns": "void"
    },
    "keyDown": {
      "description": "Called when keys are pressed.",
      "args": {
        "key": "Key"
      },
      "returns": "void"
    },
    "mouseDown": {
      "description": "Called when mouse-button is pressed.",
      "args": {
        "button": "MouseButton"
      },
      "returns": "void"
    },
    "mouseUp": {
      "description": "Called when mouse-button is released.",
      "args": {
        "button": "MouseButton"
      },
      "returns": "void"
    },
    "mouseMoved": {
      "description": "Called when mouse is moved.",
      "args": {
        "x": "f32",
        "y": "f32"
      },
      "returns": "void"
    }
  },
  "groups": {
    "colors": {
      "color_tint": {
        "args": {
          "color": "Color",
          "tint": "Color"
        },
        "returns": "Color",
        "description": "Tint a color with another color."
      },
      "color_fade": {
        "args": {
          "color": "Color",
          "alpha": "f32"
        },
        "returns": "Color",
        "description": "Fade a color."
      },
      "color_brightness": {
        "args": {
          "color": "Color",
          "factor": "f32"
        },
        "returns": "Color",
        "description": "Change the brightness of a color."
      },
      "color_invert": {
        "args": {
          "color": "Color"
        },
        "returns": "Color",
        "description": "Invert a color."
      },
      "color_alpha_blend": {
        "args": {
          "dst": "Color",
          "src": "Color"
        },
        "returns": "Color",
        "description": "Blend 2 colors together."
      },
      "color_contrast": {
        "args": {
          "color": "Color",
          "contrast": "f32"
        },
        "returns": "Color",
        "description": "Change contrast of a color."
      },
      "color_bilinear_interpolate": {
        "args": {
          "color00": "Color",
          "color01": "Color",
          "color10": "Color",
          "color11": "Color",
          "coordinateX": "f32",
          "coordinateY": "f32"
        },
        "returns": "Color",
        "description": "Interpolate colors."
      }
    },
    "graphics": {
      "new_image": {
        "args": {
          "width": "i32",
          "height": "i32",
          "color": "Color"
        },
        "returns": "Image",
        "description": "Create a new blank image."
      },
      "image_copy": {
        "args": {
          "image": "Image"
        },
        "returns": "Image",
        "description": "Copy an image to a new image."
      },
      "image_subimage": {
        "args": {
          "image": "Image",
          "x": "i32",
          "y": "i32",
          "width": "i32",
          "height": "i32"
        },
        "returns": "Image",
        "description": "Create an image from a region of another image."
      },
      "clear": {
        "args": {
          "color": "Color"
        },
        "returns": "void",
        "description": "Clear the screen."
      },
      "draw_point": {
        "args": {
          "x": "i32",
          "y": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a single pixel on the screen."
      },
      "draw_line": {
        "args": {
          "startPosX": "i32",
          "startPosY": "i32",
          "endPosX": "i32",
          "endPosY": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a line on the screen."
      },
      "draw_rectangle": {
        "args": {
          "posX": "i32",
          "posY": "i32",
          "width": "i32",
          "height": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled rectangle on the screen."
      },
      "draw_triangle": {
        "args": {
          "x1": "i32",
          "y1": "i32",
          "x2": "i32",
          "y2": "i32",
          "x3": "i32",
          "y3": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled triangle on the screen."
      },
      "draw_ellipse": {
        "args": {
          "centerX": "i32",
          "centerY": "i32",
          "radiusX": "i32",
          "radiusY": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled ellipse on the screen."
      },
      "draw_circle": {
        "args": {
          "centerX": "i32",
          "centerY": "i32",
          "radius": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled circle on the screen."
      },
      "draw_polygon": {
        "args": {
          "points": "Vector[]",
          "numPoints": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled polygon on the screen."
      },
      "draw_arc": {
        "args": {
          "centerX": "i32",
          "centerY": "i32",
          "radius": "f32",
          "startAngle": "f32",
          "endAngle": "f32",
          "segments": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled arc on the screen."
      },
      "draw_rectangle_rounded": {
        "args": {
          "x": "i32",
          "y": "i32",
          "width": "i32",
          "height": "i32",
          "cornerRadius": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled round-rectangle on the screen."
      },
      "draw_image": {
        "args": {
          "src": "Image",
          "posX": "i32",
          "posY": "i32"
        },
        "returns": "void",
        "description": "Draw an image on the screen."
      },
      "draw_image_tint": {
        "args": {
          "src": "Image",
          "posX": "i32",
          "posY": "i32",
          "tint": "Color"
        },
        "returns": "void",
        "description": "Draw a tinted image on the screen."
      },
      "draw_image_rotated": {
        "args": {
          "src": "Image",
          "posX": "i32",
          "posY": "i32",
          "degrees": "f32",
          "offsetX": "f32",
          "offsetY": "f32",
          "filter": "ImageFilter"
        },
        "returns": "void",
        "description": "Draw an image, rotated, on the screen."
      },
      "draw_image_flipped": {
        "args": {
          "src": "Image",
          "posX": "i32",
          "posY": "i32",
          "flipHorizontal": "bool",
          "flipVertical": "bool",
          "flipDiagonal": "bool"
        },
        "returns": "void",
        "description": "Draw an image, flipped, on the screen."
      },
      "draw_image_scaled": {
        "args": {
          "src": "Image",
          "posX": "i32",
          "posY": "i32",
          "scaleX": "f32",
          "scaleY": "f32",
          "offsetX": "f32",
          "offsetY": "f32",
          "filter": "ImageFilter"
        },
        "returns": "void",
        "description": "Draw an image, scaled, on the screen."
      },
      "draw_text": {
        "args": {
          "font": "Font",
          "text": "string",
          "posX": "i32",
          "posY": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw some text on the screen."
      },
      "save_image": {
        "args": {
          "image": "Image",
          "filename": "string"
        },
        "returns": "void",
        "description": "Save an image to persistant storage."
      },
      "load_image": {
        "args": {
          "filename": "string"
        },
        "returns": "Image",
        "description": "Load an image from a file in cart."
      },
      "image_resize": {
        "args": {
          "image": "Image",
          "newWidth": "i32",
          "newHeight": "i32",
          "filter": "ImageFilter"
        },
        "returns": "Image",
        "description": "Resize an image, return copy."
      },
      "image_scale": {
        "args": {
          "image": "Image",
          "scaleX": "f32",
          "scaleY": "f32",
          "filter": "ImageFilter"
        },
        "returns": "Image",
        "description": "Scale an image, return copy."
      },
      "image_color_replace": {
        "args": {
          "image": "Image",
          "color": "Color",
          "replace": "Color"
        },
        "returns": "void",
        "description": "Replace a color in an image, in-place."
      },
      "image_color_tint": {
        "args": {
          "image": "Image",
          "color": "Color"
        },
        "returns": "void",
        "description": "Tint a color in an image, in-place."
      },
      "image_color_fade": {
        "args": {
          "image": "Image",
          "alpha": "f32"
        },
        "returns": "void",
        "description": "Fade a color in an image, in-place."
      },
      "font_copy": {
        "args": {
          "font": "Font"
        },
        "returns": "Font",
        "description": "Copy a font to a new font."
      },
      "font_scale": {
        "args": {
          "font": "Font",
          "scaleX": "f32",
          "scaleY": "f32",
          "filter": "ImageFilter"
        },
        "returns": "Font",
        "description": "Scale a font, return a new font."
      },
      "load_font_bmf": {
        "args": {
          "filename": "string",
          "characters": "string"
        },
        "returns": "Font",
        "description": "Load a BMF font from a file in cart."
      },
      "load_font_bmf_from_image": {
        "args": {
          "image": "Image",
          "characters": "string"
        },
        "returns": "Font",
        "description": "Load a BMF font from an image."
      },
      "measure_text": {
        "args": {
          "font": "Font",
          "text": "string",
          "textLength": "i32"
        },
        "returns": "Dimensions",
        "description": "Measure the size of some text."
      },
      "measure_image": {
        "args": {
          "image": "Image"
        },
        "returns": "Dimensions",
        "description": "Meaure an image (use 0 for screen)."
      },
      "load_font_tty": {
        "args": {
          "filename": "string",
          "glyphWidth": "i32",
          "glyphHeight": "i32",
          "characters": "string"
        },
        "returns": "Font",
        "description": "Load a TTY font from a file in cart."
      },
      "load_font_tty_from_image": {
        "args": {
          "image": "Image",
          "glyphWidth": "i32",
          "glyphHeight": "i32",
          "characters": "string"
        },
        "returns": "Font",
        "description": "Load a TTY font from an image."
      },
      "load_font_ttf": {
        "args": {
          "filename": "string",
          "fontSize": "i32"
        },
        "returns": "Font",
        "description": "Load a TTF font from a file in cart."
      },
      "image_color_invert": {
        "args": {
          "image": "Image"
        },
        "returns": "void",
        "description": "Invert the colors in an image, in-place."
      },
      "image_alpha_border": {
        "args": {
          "image": "Image",
          "threshold": "f32"
        },
        "returns": "Rectangle",
        "description": "Calculate a rectangle representing the available alpha border in an image."
      },
      "image_crop": {
        "args": {
          "image": "Image",
          "x": "i32",
          "y": "i32",
          "width": "i32",
          "height": "i32"
        },
        "returns": "void",
        "description": "Crop an image, in-place."
      },
      "image_alpha_crop": {
        "args": {
          "image": "Image",
          "threshold": "f32"
        },
        "returns": "void",
        "description": "Crop an image based on the alpha border, in-place."
      },
      "image_color_brightness": {
        "args": {
          "image": "Image",
          "factor": "f32"
        },
        "returns": "void",
        "description": "Adjust the brightness of an image, in-place."
      },
      "image_flip": {
        "args": {
          "image": "Image",
          "horizontal": "bool",
          "vertical": "bool"
        },
        "returns": "void",
        "description": "Flip an image, in-place."
      },
      "image_color_contrast": {
        "args": {
          "image": "Image",
          "contrast": "f32"
        },
        "returns": "void",
        "description": "Change the contrast of an image, in-place."
      },
      "image_alpha_mask": {
        "args": {
          "image": "Image",
          "alphaMask": "Image",
          "posX": "i32",
          "posY": "i32"
        },
        "returns": "void",
        "description": "Use an image as an alpha-mask on another image."
      },
      "image_rotate": {
        "args": {
          "image": "Image",
          "degrees": "f32",
          "filter": "ImageFilter"
        },
        "returns": "Image",
        "description": "Create a new image, rotating another image."
      },
      "image_gradient": {
        "args": {
          "width": "i32",
          "height": "i32",
          "topLeft": "Color",
          "topRight": "Color",
          "bottomLeft": "Color",
          "bottomRight": "Color"
        },
        "returns": "Image",
        "description": "Create a new image of a gradient."
      },
      "unload_image": {
        "args": {
          "image": "Image"
        },
        "returns": "void",
        "description": "Unload an image."
      },
      "unload_font": {
        "args": {
          "font": "Font"
        },
        "returns": "void",
        "description": "Unload a font."
      },
      "clear_image": {
        "args": {
          "destination": "Image",
          "color": "Color"
        },
        "returns": "void",
        "description": "Clear an image."
      },
      "draw_point_on_image": {
        "args": {
          "destination": "Image",
          "x": "i32",
          "y": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a single pixel on an image."
      },
      "draw_line_on_image": {
        "args": {
          "destination": "Image",
          "startPosX": "i32",
          "startPosY": "i32",
          "endPosX": "i32",
          "endPosY": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a line on an image."
      },
      "draw_rectangle_on_image": {
        "args": {
          "destination": "Image",
          "posX": "i32",
          "posY": "i32",
          "width": "i32",
          "height": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled rectangle on an image."
      },
      "draw_triangle_on_image": {
        "args": {
          "destination": "Image",
          "x1": "i32",
          "y1": "i32",
          "x2": "i32",
          "y2": "i32",
          "x3": "i32",
          "y3": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled triangle on an image."
      },
      "draw_ellipse_on_image": {
        "args": {
          "destination": "Image",
          "centerX": "i32",
          "centerY": "i32",
          "radiusX": "i32",
          "radiusY": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled ellipse on an image."
      },
      "draw_circle_on_image": {
        "args": {
          "destination": "Image",
          "centerX": "i32",
          "centerY": "i32",
          "radius": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a circle on an image."
      },
      "draw_polygon_on_image": {
        "args": {
          "destination": "Image",
          "points": "Vector[]",
          "numPoints": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled polygon on an image."
      },
      "draw_rectangle_rounded_on_image": {
        "args": {
          "destination": "Image",
          "x": "i32",
          "y": "i32",
          "width": "i32",
          "height": "i32",
          "cornerRadius": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a filled round-rectangle on an image."
      },
      "draw_image_on_image": {
        "args": {
          "destination": "Image",
          "src": "Image",
          "posX": "i32",
          "posY": "i32"
        },
        "returns": "void",
        "description": "Draw an image on an image."
      },
      "draw_image_tint_on_image": {
        "args": {
          "destination": "Image",
          "src": "Image",
          "posX": "i32",
          "posY": "i32",
          "tint": "Color"
        },
        "returns": "void",
        "description": "Draw a tinted image on an image."
      },
      "draw_image_rotated_on_image": {
        "args": {
          "destination": "Image",
          "src": "Image",
          "posX": "i32",
          "posY": "i32",
          "degrees": "f32",
          "offsetX": "f32",
          "offsetY": "f32",
          "filter": "ImageFilter"
        },
        "returns": "void",
        "description": "Draw an image, rotated, on an image."
      },
      "draw_image_flipped_on_image": {
        "args": {
          "destination": "Image",
          "src": "Image",
          "posX": "i32",
          "posY": "i32",
          "flipHorizontal": "bool",
          "flipVertical": "bool",
          "flipDiagonal": "bool"
        },
        "returns": "void",
        "description": "Draw an image, flipped, on an image."
      },
      "draw_image_scaled_on_image": {
        "args": {
          "destination": "Image",
          "src": "Image",
          "posX": "i32",
          "posY": "i32",
          "scaleX": "f32",
          "scaleY": "f32",
          "offsetX": "f32",
          "offsetY": "f32",
          "filter": "ImageFilter"
        },
        "returns": "void",
        "description": "Draw an image, scaled, on an image."
      },
      "draw_text_on_image": {
        "args": {
          "destination": "Image",
          "font": "Font",
          "text": "string",
          "posX": "i32",
          "posY": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw some text on an image."
      },
      "draw_rectangle_outline": {
        "args": {
          "posX": "i32",
          "posY": "i32",
          "width": "i32",
          "height": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) rectangle on the screen."
      },
      "draw_triangle_outline": {
        "args": {
          "x1": "i32",
          "y1": "i32",
          "x2": "i32",
          "y2": "i32",
          "x3": "i32",
          "y3": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) triangle on the screen."
      },
      "draw_ellipse_outline": {
        "args": {
          "centerX": "i32",
          "centerY": "i32",
          "radiusX": "i32",
          "radiusY": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) ellipse on the screen."
      },
      "draw_circle_outline": {
        "args": {
          "centerX": "i32",
          "centerY": "i32",
          "radius": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) circle on the screen."
      },
      "draw_polygon_outline": {
        "args": {
          "points": "Vector[]",
          "numPoints": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) polygon on the screen."
      },
      "draw_arc_outline": {
        "args": {
          "centerX": "i32",
          "centerY": "i32",
          "radius": "f32",
          "startAngle": "f32",
          "endAngle": "f32",
          "segments": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) arc on the screen."
      },
      "draw_rectangle_rounded_outline": {
        "args": {
          "x": "i32",
          "y": "i32",
          "width": "i32",
          "height": "i32",
          "cornerRadius": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) round-rectangle on the screen."
      },
      "draw_rectangle_outline_on_image": {
        "args": {
          "destination": "Image",
          "posX": "i32",
          "posY": "i32",
          "width": "i32",
          "height": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) rectangle on an image."
      },
      "draw_triangle_outline_on_image": {
        "args": {
          "destination": "Image",
          "x1": "i32",
          "y1": "i32",
          "x2": "i32",
          "y2": "i32",
          "x3": "i32",
          "y3": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) triangle on an image."
      },
      "draw_ellipse_outline_on_image": {
        "args": {
          "destination": "Image",
          "centerX": "i32",
          "centerY": "i32",
          "radiusX": "i32",
          "radiusY": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) ellipse on an image."
      },
      "draw_circle_outline_on_image": {
        "args": {
          "destination": "Image",
          "centerX": "i32",
          "centerY": "i32",
          "radius": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) circle on an image."
      },
      "draw_polygon_outline_on_image": {
        "args": {
          "destination": "Image",
          "points": "Vector[]",
          "numPoints": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) polygon on an image."
      },
      "draw_rectangle_rounded_outline_on_image": {
        "args": {
          "destination": "Image",
          "x": "i32",
          "y": "i32",
          "width": "i32",
          "height": "i32",
          "cornerRadius": "i32",
          "thickness": "i32",
          "color": "Color"
        },
        "returns": "void",
        "description": "Draw a outlined (with thickness) round-rectangle on an image."
      }
    },
    "gui": {
      "gui_begin_window": {
        "args": {
          "title": "string",
          "rect": "Rectangle"
        },
        "returns": "bool",
        "description": "Begin a GUI window. Returns false if the window is collapsed or closed - skip its contents, but still call gui_end_window."
      },
      "gui_end_window": {
        "description": "End the current GUI window.",
        "args": {},
        "returns": "void"
      },
      "gui_button": {
        "args": {
          "label": "string"
        },
        "returns": "bool",
        "description": "A button. Returns true when it is clicked."
      },
      "gui_label": {
        "args": {
          "text": "string"
        },
        "returns": "void",
        "description": "A static text label."
      },
      "gui_text": {
        "args": {
          "text": "string"
        },
        "returns": "void",
        "description": "A block of wrapping text."
      },
      "gui_checkbox": {
        "args": {
          "label": "string",
          "state": "bool"
        },
        "returns": "bool",
        "description": "A checkbox. Returns the (possibly changed) state."
      },
      "gui_slider": {
        "args": {
          "value": "f32",
          "low": "f32",
          "high": "f32"
        },
        "returns": "f32",
        "description": "A slider. Returns the (possibly changed) value."
      },
      "gui_layout_row": {
        "args": {
          "widths": "i32[]",
          "numWidths": "i32",
          "height": "i32"
        },
        "returns": "void",
        "description": "Set the current layout row - the column widths (negative for flexible), and the row height."
      },
      "gui_end": {
        "description": "Finish building the GUI for this frame. Called automatically at the end of update if you do not call it.",
        "args": {},
        "returns": "void"
      },
      "gui_draw": {
        "args": {
          "dst": "Image"
        },
        "returns": "void",
        "description": "Draw the GUI to an image (0 is the screen)."
      }
    },
    "input": {
      "key_pressed": {
        "args": {
          "key": "Key"
        },
        "returns": "bool",
        "description": "Has the key been pressed? (tracks unpress/read correctly.)"
      },
      "key_down": {
        "args": {
          "key": "Key"
        },
        "returns": "bool",
        "description": "Is the key currently down?"
      },
      "key_released": {
        "args": {
          "key": "Key"
        },
        "returns": "bool",
        "description": "Has the key been released? (tracks press/read correctly.)"
      },
      "key_up": {
        "args": {
          "key": "Key"
        },
        "returns": "bool",
        "description": "Is the key currently up?"
      },
      "gamepad_button_pressed": {
        "args": {
          "gamepad": "i32",
          "button": "GamepadButton"
        },
        "returns": "bool",
        "description": "Has the button been pressed? (tracks unpress/read correctly.)"
      },
      "gamepad_button_down": {
        "args": {
          "gamepad": "i32",
          "button": "GamepadButton"
        },
        "returns": "bool",
        "description": "Is the button currently down?"
      },
      "gamepad_button_released": {
        "args": {
          "gamepad": "i32",
          "button": "GamepadButton"
        },
        "returns": "bool",
        "description": "Has the button been released? (tracks press/read correctly.)"
      },
      "mouse_position": {
        "args": {},
        "returns": "Vector",
        "description": "Get current position of mouse."
      },
      "mouse_button_pressed": {
        "args": {
          "button": "MouseButton"
        },
        "returns": "bool",
        "description": "Has the button been pressed? (tracks unpress/read correctly.)"
      },
      "mouse_button_down": {
        "args": {
          "button": "MouseButton"
        },
        "returns": "bool",
        "description": "Is the button currently down?"
      },
      "mouse_button_released": {
        "args": {
          "button": "MouseButton"
        },
        "returns": "bool",
        "description": "Has the button been released? (tracks press/read correctly.)"
      },
      "mouse_button_up": {
        "args": {
          "button": "MouseButton"
        },
        "returns": "bool",
        "description": "Is the button currently up?"
      }
    },
    "sound": {
      "load_sound": {
        "args": {
          "filename": "string"
        },
        "returns": "Sound",
        "description": "Load a sound from a file in cart."
      },
      "play_sound": {
        "args": {
          "sound": "Sound",
          "loop": "bool"
        },
        "returns": "void",
        "description": "Play a sound."
      },
      "stop_sound": {
        "args": {
          "sound": "Sound"
        },
        "returns": "void",
        "description": "Stop a sound."
      },
      "unload_sound": {
        "args": {
          "sound": "Sound"
        },
        "returns": "void",
        "description": "Unload a sound."
      },
      "tts_sound": {
        "args": {
          "text": "string",
          "phonetic": "bool",
          "pitch": "i32",
          "speed": "i32",
          "throat": "i32",
          "mouth": "i32",
          "sing": "bool"
        },
        "returns": "Sound",
        "description": "Speak some text and return a sound. Set things to 0 for defaults."
      },
      "sfx_sound": {
        "args": {
          "params": "SfxParams"
        },
        "returns": "Sound",
        "description": "Create Sfx sound."
      },
      "sfx_generate": {
        "args": {
          "type": "SfxPresetType"
        },
        "returns": "SfxParams",
        "description": "Create Sfx parameters."
      }
    },
    "tile": {
      "load_tilemap": {
        "args": {
          "filename": "string"
        },
        "returns": "Tilemap",
        "description": "Load a tilemap (a Tiled map, exported as JSON) from a file in cart."
      },
      "unload_tilemap": {
        "args": {
          "tilemap": "Tilemap"
        },
        "returns": "void",
        "description": "Unload a tilemap."
      },
      "tile_update": {
        "args": {
          "tilemap": "Tilemap",
          "deltaTime": "f32"
        },
        "returns": "void",
        "description": "Update a tilemap's animation timers (deltaTime is in seconds)."
      },
      "tile_map_size": {
        "args": {
          "tilemap": "Tilemap"
        },
        "returns": "Dimensions",
        "description": "Get the size of a tilemap, in tiles."
      },
      "tile_tile_size": {
        "args": {
          "tilemap": "Tilemap"
        },
        "returns": "Dimensions",
        "description": "Get the size of a single tile of a tilemap, in pixels."
      },
      "tile_map_prop": {
        "args": {
          "tilemap": "Tilemap",
          "name": "string"
        },
        "returns": "TilemapProp",
        "description": "Get a custom property of a tilemap, by name (PROP_NONE when there is no such property.)"
      },
      "tile_map_prop_count": {
        "args": {
          "tilemap": "Tilemap"
        },
        "returns": "i32",
        "description": "Get the number of custom properties on a tilemap."
      },
      "tile_map_prop_at": {
        "args": {
          "tilemap": "Tilemap",
          "index": "i32"
        },
        "returns": "TilemapProp",
        "description": "Get a custom property of a tilemap, by index (PROP_NONE when out of range.)"
      },
      "tile_draw": {
        "args": {
          "tilemap": "Tilemap",
          "posX": "i32",
          "posY": "i32"
        },
        "returns": "void",
        "description": "Draw a tilemap on the screen."
      },
      "tile_draw_tint": {
        "args": {
          "tilemap": "Tilemap",
          "posX": "i32",
          "posY": "i32",
          "tint": "Color"
        },
        "returns": "void",
        "description": "Draw a tilemap on the screen, tinted by a color."
      },
      "tile_draw_on_image": {
        "args": {
          "dst": "Image",
          "tilemap": "Tilemap",
          "posX": "i32",
          "posY": "i32"
        },
        "returns": "void",
        "description": "Draw a tilemap on an image."
      },
      "tilemap_image": {
        "args": {
          "tilemap": "Tilemap"
        },
        "returns": "Image",
        "description": "Render a whole tilemap to a new image."
      },
      "tile_layer_count": {
        "args": {
          "tilemap": "Tilemap"
        },
        "returns": "i32",
        "description": "Get the number of layers in a tilemap. Layers are numbered depth-first, so the children of a group layer have their own indexes too."
      },
      "tile_layer_index": {
        "args": {
          "tilemap": "Tilemap",
          "name": "string"
        },
        "returns": "i32",
        "description": "Get the index of a layer of a tilemap, by name (-1 when there is no such layer.)"
      },
      "tile_layer_name": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32"
        },
        "returns": "string",
        "description": "Get the name of a layer of a tilemap."
      },
      "tile_layer_type": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32"
        },
        "returns": "TileLayerKind",
        "description": "Get the kind of a layer of a tilemap."
      },
      "tile_layer_size": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32"
        },
        "returns": "Dimensions",
        "description": "Get the size of a layer of a tilemap, in tiles."
      },
      "tile_layer_visible": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32"
        },
        "returns": "bool",
        "description": "Get whether a layer of a tilemap is visible. Drawing a layer that Tiled marked hidden draws nothing."
      },
      "tile_layer_prop": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "name": "string"
        },
        "returns": "TilemapProp",
        "description": "Get a custom property of a layer of a tilemap, by name (PROP_NONE when there is no such property.)"
      },
      "tile_layer_prop_count": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32"
        },
        "returns": "i32",
        "description": "Get the number of custom properties on a layer of a tilemap."
      },
      "tile_layer_prop_at": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "index": "i32"
        },
        "returns": "TilemapProp",
        "description": "Get a custom property of a layer of a tilemap, by index (PROP_NONE when out of range.)"
      },
      "tile_draw_layer": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "posX": "i32",
          "posY": "i32"
        },
        "returns": "void",
        "description": "Draw a single layer of a tilemap on the screen."
      },
      "tile_draw_layer_tint": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "posX": "i32",
          "posY": "i32",
          "tint": "Color"
        },
        "returns": "void",
        "description": "Draw a single layer of a tilemap on the screen, tinted by a color."
      },
      "tile_draw_layer_on_image": {
        "args": {
          "dst": "Image",
          "tilemap": "Tilemap",
          "layer": "i32",
          "posX": "i32",
          "posY": "i32"
        },
        "returns": "void",
        "description": "Draw a single layer of a tilemap on an image."
      },
      "tile_layer_image": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32"
        },
        "returns": "Image",
        "description": "Render a single layer of a tilemap to a new image."
      },
      "tile_get_tile": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "column": "i32",
          "row": "i32"
        },
        "returns": "i32",
        "description": "Get the gid of the tile at a column/row in a tilemap layer."
      },
      "tile_set_tile": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "column": "i32",
          "row": "i32",
          "gid": "i32"
        },
        "returns": "void",
        "description": "Set the gid of the tile at a column/row in a tilemap layer. Swapping a gid is how a cart keeps changing state in the map itself."
      },
      "tile_draw_tile": {
        "args": {
          "tilemap": "Tilemap",
          "gid": "i32",
          "posX": "i32",
          "posY": "i32"
        },
        "returns": "void",
        "description": "Draw a single tile from a tilemap on the screen."
      },
      "tile_image": {
        "args": {
          "tilemap": "Tilemap",
          "gid": "i32"
        },
        "returns": "Image",
        "description": "Get a copy of the image of a single tile in a tilemap."
      },
      "tile_gid_prop": {
        "args": {
          "tilemap": "Tilemap",
          "gid": "i32",
          "name": "string"
        },
        "returns": "TilemapProp",
        "description": "Get a custom property of a tile of a tilemap, by name (PROP_NONE when there is no such property.) These come from the tileset, so every tile with this gid shares them."
      },
      "tile_gid_prop_count": {
        "args": {
          "tilemap": "Tilemap",
          "gid": "i32"
        },
        "returns": "i32",
        "description": "Get the number of custom properties on a tile of a tilemap."
      },
      "tile_gid_prop_at": {
        "args": {
          "tilemap": "Tilemap",
          "gid": "i32",
          "index": "i32"
        },
        "returns": "TilemapProp",
        "description": "Get a custom property of a tile of a tilemap, by index (PROP_NONE when out of range.)"
      },
      "tile_object_count": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32"
        },
        "returns": "i32",
        "description": "Get the number of objects on an object-layer of a tilemap."
      },
      "tile_object": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "index": "i32"
        },
        "returns": "TilemapObject",
        "description": "Get an object from an object-layer of a tilemap."
      },
      "tile_object_index": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "name": "string"
        },
        "returns": "i32",
        "description": "Get the index of an object on an object-layer of a tilemap, by name (-1 when there is no such object.)"
      },
      "tile_object_prop": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "index": "i32",
          "name": "string"
        },
        "returns": "TilemapProp",
        "description": "Get a custom property of an object of a tilemap, by name (PROP_NONE when there is no such property.)"
      },
      "tile_object_prop_count": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "index": "i32"
        },
        "returns": "i32",
        "description": "Get the number of custom properties on an object of a tilemap."
      },
      "tile_object_prop_at": {
        "args": {
          "tilemap": "Tilemap",
          "layer": "i32",
          "index": "i32",
          "propIndex": "i32"
        },
        "returns": "TilemapProp",
        "description": "Get a custom property of an object of a tilemap, by index (PROP_NONE when out of range.)"
      }
    },
    "utilities": {
      "current_time": {
        "returns": "u64",
        "args": {},
        "description": "Get system-time (ms) since unix epoch."
      },
      "delta_time": {
        "returns": "f32",
        "args": {},
        "description": "Get the change in time (seconds) since the last update run."
      },
      "random_int": {
        "returns": "i32",
        "args": {
          "min": "i32",
          "max": "i32"
        },
        "description": "Get a random integer between 2 numbers."
      },
      "random_seed_get": {
        "returns": "u64",
        "args": {},
        "description": "Get the random-seed."
      },
      "random_seed_set": {
        "returns": "void",
        "args": {
          "seed": "u64"
        },
        "description": "Set the random-seed."
      }
    }
  },
  "languages": {
    "c": {
      "id": "c",
      "binding": "carts/c/null0.h",
      "example": "carts/c/simple",
      "title": "C",
      "image": "c",
      "kind": "compiled",
      "file": "main.c",
      "highlight": "c",
      "callback": "void update() {}",
      "toolchain": "wasi-sdk clang",
      "notes": [
        "`#include \"null0.h\"` and you have the whole API. `main()` works as a `load()` if you prefer it.",
        "Call `fflush(stdout)` if you want `printf` output to survive a cart being killed."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-c:latest",
      "decls": {
        "color_tint": "extern Color* color_tint(Color color, Color tint);",
        "color_fade": "extern Color* color_fade(Color color, f32 alpha);",
        "color_brightness": "extern Color* color_brightness(Color color, f32 factor);",
        "color_invert": "extern Color* color_invert(Color color);",
        "color_alpha_blend": "extern Color* color_alpha_blend(Color dst, Color src);",
        "color_contrast": "extern Color* color_contrast(Color color, f32 contrast);",
        "color_bilinear_interpolate": "extern Color* color_bilinear_interpolate(Color color00, Color color01, Color color10, Color color11, f32 coordinateX, f32 coordinateY);",
        "new_image": "extern u32 new_image(i32 width, i32 height, Color color);",
        "image_copy": "extern u32 image_copy(u32 image);",
        "image_subimage": "extern u32 image_subimage(u32 image, i32 x, i32 y, i32 width, i32 height);",
        "clear": "extern void clear(Color color);",
        "draw_point": "extern void draw_point(i32 x, i32 y, Color color);",
        "draw_line": "extern void draw_line(i32 startPosX, i32 startPosY, i32 endPosX, i32 endPosY, Color color);",
        "draw_rectangle": "extern void draw_rectangle(i32 posX, i32 posY, i32 width, i32 height, Color color);",
        "draw_triangle": "extern void draw_triangle(i32 x1, i32 y1, i32 x2, i32 y2, i32 x3, i32 y3, Color color);",
        "draw_ellipse": "extern void draw_ellipse(i32 centerX, i32 centerY, i32 radiusX, i32 radiusY, Color color);",
        "draw_circle": "extern void draw_circle(i32 centerX, i32 centerY, i32 radius, Color color);",
        "draw_polygon": "extern void draw_polygon(Vector* points, i32 numPoints, Color color);",
        "draw_arc": "extern void draw_arc(i32 centerX, i32 centerY, f32 radius, f32 startAngle, f32 endAngle, i32 segments, Color color);",
        "draw_rectangle_rounded": "extern void draw_rectangle_rounded(i32 x, i32 y, i32 width, i32 height, i32 cornerRadius, Color color);",
        "draw_image": "extern void draw_image(u32 src, i32 posX, i32 posY);",
        "draw_image_tint": "extern void draw_image_tint(u32 src, i32 posX, i32 posY, Color tint);",
        "draw_image_rotated": "extern void draw_image_rotated(u32 src, i32 posX, i32 posY, f32 degrees, f32 offsetX, f32 offsetY, ImageFilter filter);",
        "draw_image_flipped": "extern void draw_image_flipped(u32 src, i32 posX, i32 posY, bool flipHorizontal, bool flipVertical, bool flipDiagonal);",
        "draw_image_scaled": "extern void draw_image_scaled(u32 src, i32 posX, i32 posY, f32 scaleX, f32 scaleY, f32 offsetX, f32 offsetY, ImageFilter filter);",
        "draw_text": "extern void draw_text(u32 font, char* text, i32 posX, i32 posY, Color color);",
        "save_image": "extern void save_image(u32 image, char* filename);",
        "load_image": "extern u32 load_image(char* filename);",
        "image_resize": "extern u32 image_resize(u32 image, i32 newWidth, i32 newHeight, ImageFilter filter);",
        "image_scale": "extern u32 image_scale(u32 image, f32 scaleX, f32 scaleY, ImageFilter filter);",
        "image_color_replace": "extern void image_color_replace(u32 image, Color color, Color replace);",
        "image_color_tint": "extern void image_color_tint(u32 image, Color color);",
        "image_color_fade": "extern void image_color_fade(u32 image, f32 alpha);",
        "font_copy": "extern u32 font_copy(u32 font);",
        "font_scale": "extern u32 font_scale(u32 font, f32 scaleX, f32 scaleY, ImageFilter filter);",
        "load_font_bmf": "extern u32 load_font_bmf(char* filename, char* characters);",
        "load_font_bmf_from_image": "extern u32 load_font_bmf_from_image(u32 image, char* characters);",
        "measure_text": "extern Dimensions* measure_text(u32 font, char* text, i32 textLength);",
        "measure_image": "extern Dimensions* measure_image(u32 image);",
        "load_font_tty": "extern u32 load_font_tty(char* filename, i32 glyphWidth, i32 glyphHeight, char* characters);",
        "load_font_tty_from_image": "extern u32 load_font_tty_from_image(u32 image, i32 glyphWidth, i32 glyphHeight, char* characters);",
        "load_font_ttf": "extern u32 load_font_ttf(char* filename, i32 fontSize);",
        "image_color_invert": "extern void image_color_invert(u32 image);",
        "image_alpha_border": "extern Rectangle* image_alpha_border(u32 image, f32 threshold);",
        "image_crop": "extern void image_crop(u32 image, i32 x, i32 y, i32 width, i32 height);",
        "image_alpha_crop": "extern void image_alpha_crop(u32 image, f32 threshold);",
        "image_color_brightness": "extern void image_color_brightness(u32 image, f32 factor);",
        "image_flip": "extern void image_flip(u32 image, bool horizontal, bool vertical);",
        "image_color_contrast": "extern void image_color_contrast(u32 image, f32 contrast);",
        "image_alpha_mask": "extern void image_alpha_mask(u32 image, u32 alphaMask, i32 posX, i32 posY);",
        "image_rotate": "extern u32 image_rotate(u32 image, f32 degrees, ImageFilter filter);",
        "image_gradient": "extern u32 image_gradient(i32 width, i32 height, Color topLeft, Color topRight, Color bottomLeft, Color bottomRight);",
        "unload_image": "extern void unload_image(u32 image);",
        "unload_font": "extern void unload_font(u32 font);",
        "clear_image": "extern void clear_image(u32 destination, Color color);",
        "draw_point_on_image": "extern void draw_point_on_image(u32 destination, i32 x, i32 y, Color color);",
        "draw_line_on_image": "extern void draw_line_on_image(u32 destination, i32 startPosX, i32 startPosY, i32 endPosX, i32 endPosY, Color color);",
        "draw_rectangle_on_image": "extern void draw_rectangle_on_image(u32 destination, i32 posX, i32 posY, i32 width, i32 height, Color color);",
        "draw_triangle_on_image": "extern void draw_triangle_on_image(u32 destination, i32 x1, i32 y1, i32 x2, i32 y2, i32 x3, i32 y3, Color color);",
        "draw_ellipse_on_image": "extern void draw_ellipse_on_image(u32 destination, i32 centerX, i32 centerY, i32 radiusX, i32 radiusY, Color color);",
        "draw_circle_on_image": "extern void draw_circle_on_image(u32 destination, i32 centerX, i32 centerY, i32 radius, Color color);",
        "draw_polygon_on_image": "extern void draw_polygon_on_image(u32 destination, Vector* points, i32 numPoints, Color color);",
        "draw_rectangle_rounded_on_image": "extern void draw_rectangle_rounded_on_image(u32 destination, i32 x, i32 y, i32 width, i32 height, i32 cornerRadius, Color color);",
        "draw_image_on_image": "extern void draw_image_on_image(u32 destination, u32 src, i32 posX, i32 posY);",
        "draw_image_tint_on_image": "extern void draw_image_tint_on_image(u32 destination, u32 src, i32 posX, i32 posY, Color tint);",
        "draw_image_rotated_on_image": "extern void draw_image_rotated_on_image(u32 destination, u32 src, i32 posX, i32 posY, f32 degrees, f32 offsetX, f32 offsetY, ImageFilter filter);",
        "draw_image_flipped_on_image": "extern void draw_image_flipped_on_image(u32 destination, u32 src, i32 posX, i32 posY, bool flipHorizontal, bool flipVertical, bool flipDiagonal);",
        "draw_image_scaled_on_image": "extern void draw_image_scaled_on_image(u32 destination, u32 src, i32 posX, i32 posY, f32 scaleX, f32 scaleY, f32 offsetX, f32 offsetY, ImageFilter filter);",
        "draw_text_on_image": "extern void draw_text_on_image(u32 destination, u32 font, char* text, i32 posX, i32 posY, Color color);",
        "draw_rectangle_outline": "extern void draw_rectangle_outline(i32 posX, i32 posY, i32 width, i32 height, i32 thickness, Color color);",
        "draw_triangle_outline": "extern void draw_triangle_outline(i32 x1, i32 y1, i32 x2, i32 y2, i32 x3, i32 y3, i32 thickness, Color color);",
        "draw_ellipse_outline": "extern void draw_ellipse_outline(i32 centerX, i32 centerY, i32 radiusX, i32 radiusY, i32 thickness, Color color);",
        "draw_circle_outline": "extern void draw_circle_outline(i32 centerX, i32 centerY, i32 radius, i32 thickness, Color color);",
        "draw_polygon_outline": "extern void draw_polygon_outline(Vector* points, i32 numPoints, i32 thickness, Color color);",
        "draw_arc_outline": "extern void draw_arc_outline(i32 centerX, i32 centerY, f32 radius, f32 startAngle, f32 endAngle, i32 segments, i32 thickness, Color color);",
        "draw_rectangle_rounded_outline": "extern void draw_rectangle_rounded_outline(i32 x, i32 y, i32 width, i32 height, i32 cornerRadius, i32 thickness, Color color);",
        "draw_rectangle_outline_on_image": "extern void draw_rectangle_outline_on_image(u32 destination, i32 posX, i32 posY, i32 width, i32 height, i32 thickness, Color color);",
        "draw_triangle_outline_on_image": "extern void draw_triangle_outline_on_image(u32 destination, i32 x1, i32 y1, i32 x2, i32 y2, i32 x3, i32 y3, i32 thickness, Color color);",
        "draw_ellipse_outline_on_image": "extern void draw_ellipse_outline_on_image(u32 destination, i32 centerX, i32 centerY, i32 radiusX, i32 radiusY, i32 thickness, Color color);",
        "draw_circle_outline_on_image": "extern void draw_circle_outline_on_image(u32 destination, i32 centerX, i32 centerY, i32 radius, i32 thickness, Color color);",
        "draw_polygon_outline_on_image": "extern void draw_polygon_outline_on_image(u32 destination, Vector* points, i32 numPoints, i32 thickness, Color color);",
        "draw_rectangle_rounded_outline_on_image": "extern void draw_rectangle_rounded_outline_on_image(u32 destination, i32 x, i32 y, i32 width, i32 height, i32 cornerRadius, i32 thickness, Color color);",
        "gui_begin_window": "extern bool gui_begin_window(char* title, Rectangle rect);",
        "gui_end_window": "extern void gui_end_window();",
        "gui_button": "extern bool gui_button(char* label);",
        "gui_label": "extern void gui_label(char* text);",
        "gui_text": "extern void gui_text(char* text);",
        "gui_checkbox": "extern bool gui_checkbox(char* label, bool state);",
        "gui_slider": "extern f32 gui_slider(f32 value, f32 low, f32 high);",
        "gui_layout_row": "extern void gui_layout_row(i32* widths, i32 numWidths, i32 height);",
        "gui_end": "extern void gui_end();",
        "gui_draw": "extern void gui_draw(u32 dst);",
        "key_pressed": "extern bool key_pressed(Key key);",
        "key_down": "extern bool key_down(Key key);",
        "key_released": "extern bool key_released(Key key);",
        "key_up": "extern bool key_up(Key key);",
        "gamepad_button_pressed": "extern bool gamepad_button_pressed(i32 gamepad, GamepadButton button);",
        "gamepad_button_down": "extern bool gamepad_button_down(i32 gamepad, GamepadButton button);",
        "gamepad_button_released": "extern bool gamepad_button_released(i32 gamepad, GamepadButton button);",
        "mouse_position": "extern Vector* mouse_position();",
        "mouse_button_pressed": "extern bool mouse_button_pressed(MouseButton button);",
        "mouse_button_down": "extern bool mouse_button_down(MouseButton button);",
        "mouse_button_released": "extern bool mouse_button_released(MouseButton button);",
        "mouse_button_up": "extern bool mouse_button_up(MouseButton button);",
        "load_sound": "extern u32 load_sound(char* filename);",
        "play_sound": "extern void play_sound(u32 sound, bool loop);",
        "stop_sound": "extern void stop_sound(u32 sound);",
        "unload_sound": "extern void unload_sound(u32 sound);",
        "tts_sound": "extern u32 tts_sound(char* text, bool phonetic, i32 pitch, i32 speed, i32 throat, i32 mouth, bool sing);",
        "sfx_sound": "extern u32 sfx_sound(SfxParams params);",
        "sfx_generate": "extern SfxParams* sfx_generate(SfxPresetType type);",
        "load_tilemap": "extern u32 load_tilemap(char* filename);",
        "unload_tilemap": "extern void unload_tilemap(u32 tilemap);",
        "tile_update": "extern void tile_update(u32 tilemap, f32 deltaTime);",
        "tile_map_size": "extern Dimensions* tile_map_size(u32 tilemap);",
        "tile_tile_size": "extern Dimensions* tile_tile_size(u32 tilemap);",
        "tile_map_prop": "extern TilemapProp* tile_map_prop(u32 tilemap, char* name);",
        "tile_map_prop_count": "extern i32 tile_map_prop_count(u32 tilemap);",
        "tile_map_prop_at": "extern TilemapProp* tile_map_prop_at(u32 tilemap, i32 index);",
        "tile_draw": "extern void tile_draw(u32 tilemap, i32 posX, i32 posY);",
        "tile_draw_tint": "extern void tile_draw_tint(u32 tilemap, i32 posX, i32 posY, Color tint);",
        "tile_draw_on_image": "extern void tile_draw_on_image(u32 dst, u32 tilemap, i32 posX, i32 posY);",
        "tilemap_image": "extern u32 tilemap_image(u32 tilemap);",
        "tile_layer_count": "extern i32 tile_layer_count(u32 tilemap);",
        "tile_layer_index": "extern i32 tile_layer_index(u32 tilemap, char* name);",
        "tile_layer_name": "extern char* tile_layer_name(u32 tilemap, i32 layer);",
        "tile_layer_type": "extern TileLayerKind tile_layer_type(u32 tilemap, i32 layer);",
        "tile_layer_size": "extern Dimensions* tile_layer_size(u32 tilemap, i32 layer);",
        "tile_layer_visible": "extern bool tile_layer_visible(u32 tilemap, i32 layer);",
        "tile_layer_prop": "extern TilemapProp* tile_layer_prop(u32 tilemap, i32 layer, char* name);",
        "tile_layer_prop_count": "extern i32 tile_layer_prop_count(u32 tilemap, i32 layer);",
        "tile_layer_prop_at": "extern TilemapProp* tile_layer_prop_at(u32 tilemap, i32 layer, i32 index);",
        "tile_draw_layer": "extern void tile_draw_layer(u32 tilemap, i32 layer, i32 posX, i32 posY);",
        "tile_draw_layer_tint": "extern void tile_draw_layer_tint(u32 tilemap, i32 layer, i32 posX, i32 posY, Color tint);",
        "tile_draw_layer_on_image": "extern void tile_draw_layer_on_image(u32 dst, u32 tilemap, i32 layer, i32 posX, i32 posY);",
        "tile_layer_image": "extern u32 tile_layer_image(u32 tilemap, i32 layer);",
        "tile_get_tile": "extern i32 tile_get_tile(u32 tilemap, i32 layer, i32 column, i32 row);",
        "tile_set_tile": "extern void tile_set_tile(u32 tilemap, i32 layer, i32 column, i32 row, i32 gid);",
        "tile_draw_tile": "extern void tile_draw_tile(u32 tilemap, i32 gid, i32 posX, i32 posY);",
        "tile_image": "extern u32 tile_image(u32 tilemap, i32 gid);",
        "tile_gid_prop": "extern TilemapProp* tile_gid_prop(u32 tilemap, i32 gid, char* name);",
        "tile_gid_prop_count": "extern i32 tile_gid_prop_count(u32 tilemap, i32 gid);",
        "tile_gid_prop_at": "extern TilemapProp* tile_gid_prop_at(u32 tilemap, i32 gid, i32 index);",
        "tile_object_count": "extern i32 tile_object_count(u32 tilemap, i32 layer);",
        "tile_object": "extern TilemapObject* tile_object(u32 tilemap, i32 layer, i32 index);",
        "tile_object_index": "extern i32 tile_object_index(u32 tilemap, i32 layer, char* name);",
        "tile_object_prop": "extern TilemapProp* tile_object_prop(u32 tilemap, i32 layer, i32 index, char* name);",
        "tile_object_prop_count": "extern i32 tile_object_prop_count(u32 tilemap, i32 layer, i32 index);",
        "tile_object_prop_at": "extern TilemapProp* tile_object_prop_at(u32 tilemap, i32 layer, i32 index, i32 propIndex);",
        "current_time": "extern u64 current_time();",
        "delta_time": "extern f32 delta_time();",
        "random_int": "extern i32 random_int(i32 min, i32 max);",
        "random_seed_get": "extern u64 random_seed_get();",
        "random_seed_set": "extern void random_seed_set(u64 seed);"
      }
    },
    "rust": {
      "id": "rust",
      "binding": "carts/rust/src/lib.rs",
      "example": "carts/rust/examples/simple",
      "title": "Rust",
      "image": "rust",
      "kind": "compiled",
      "file": "src/lib.rs",
      "highlight": "rust",
      "callback": "#[no_mangle] pub extern \"C\" fn load() {}",
      "toolchain": "cargo, wasm32-unknown-unknown",
      "notes": [
        "`no_std`, `crate-type = [\"cdylib\"]`, `panic = \"abort\"`.",
        "The declarations live in an `extern \"C\"` block, so every call is `unsafe`."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-rust:latest",
      "decls": {
        "color_tint": "pub fn color_tint(color: Color, tint: Color) -> *const Color;",
        "color_fade": "pub fn color_fade(color: Color, alpha: f32) -> *const Color;",
        "color_brightness": "pub fn color_brightness(color: Color, factor: f32) -> *const Color;",
        "color_invert": "pub fn color_invert(color: Color) -> *const Color;",
        "color_alpha_blend": "pub fn color_alpha_blend(dst: Color, src: Color) -> *const Color;",
        "color_contrast": "pub fn color_contrast(color: Color, contrast: f32) -> *const Color;",
        "color_bilinear_interpolate": "pub fn color_bilinear_interpolate(color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: f32, coordinateY: f32) -> *const Color;",
        "new_image": "pub fn new_image(width: i32, height: i32, color: Color) -> u32;",
        "image_copy": "pub fn image_copy(image: u32) -> u32;",
        "image_subimage": "pub fn image_subimage(image: u32, x: i32, y: i32, width: i32, height: i32) -> u32;",
        "clear": "pub fn clear(color: Color);",
        "draw_point": "pub fn draw_point(x: i32, y: i32, color: Color);",
        "draw_line": "pub fn draw_line(startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color);",
        "draw_rectangle": "pub fn draw_rectangle(posX: i32, posY: i32, width: i32, height: i32, color: Color);",
        "draw_triangle": "pub fn draw_triangle(x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color);",
        "draw_ellipse": "pub fn draw_ellipse(centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color);",
        "draw_circle": "pub fn draw_circle(centerX: i32, centerY: i32, radius: i32, color: Color);",
        "draw_polygon": "pub fn draw_polygon(points: *const Vector, numPoints: i32, color: Color);",
        "draw_arc": "pub fn draw_arc(centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, color: Color);",
        "draw_rectangle_rounded": "pub fn draw_rectangle_rounded(x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color);",
        "draw_image": "pub fn draw_image(src: u32, posX: i32, posY: i32);",
        "draw_image_tint": "pub fn draw_image_tint(src: u32, posX: i32, posY: i32, tint: Color);",
        "draw_image_rotated": "pub fn draw_image_rotated(src: u32, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: ImageFilter);",
        "draw_image_flipped": "pub fn draw_image_flipped(src: u32, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool);",
        "draw_image_scaled": "pub fn draw_image_scaled(src: u32, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: ImageFilter);",
        "draw_text": "pub fn draw_text(font: u32, text: *const u8, posX: i32, posY: i32, color: Color);",
        "save_image": "pub fn save_image(image: u32, filename: *const u8);",
        "load_image": "pub fn load_image(filename: *const u8) -> u32;",
        "image_resize": "pub fn image_resize(image: u32, newWidth: i32, newHeight: i32, filter: ImageFilter) -> u32;",
        "image_scale": "pub fn image_scale(image: u32, scaleX: f32, scaleY: f32, filter: ImageFilter) -> u32;",
        "image_color_replace": "pub fn image_color_replace(image: u32, color: Color, replace: Color);",
        "image_color_tint": "pub fn image_color_tint(image: u32, color: Color);",
        "image_color_fade": "pub fn image_color_fade(image: u32, alpha: f32);",
        "font_copy": "pub fn font_copy(font: u32) -> u32;",
        "font_scale": "pub fn font_scale(font: u32, scaleX: f32, scaleY: f32, filter: ImageFilter) -> u32;",
        "load_font_bmf": "pub fn load_font_bmf(filename: *const u8, characters: *const u8) -> u32;",
        "load_font_bmf_from_image": "pub fn load_font_bmf_from_image(image: u32, characters: *const u8) -> u32;",
        "measure_text": "pub fn measure_text(font: u32, text: *const u8, textLength: i32) -> *const Dimensions;",
        "measure_image": "pub fn measure_image(image: u32) -> *const Dimensions;",
        "load_font_tty": "pub fn load_font_tty(filename: *const u8, glyphWidth: i32, glyphHeight: i32, characters: *const u8) -> u32;",
        "load_font_tty_from_image": "pub fn load_font_tty_from_image(image: u32, glyphWidth: i32, glyphHeight: i32, characters: *const u8) -> u32;",
        "load_font_ttf": "pub fn load_font_ttf(filename: *const u8, fontSize: i32) -> u32;",
        "image_color_invert": "pub fn image_color_invert(image: u32);",
        "image_alpha_border": "pub fn image_alpha_border(image: u32, threshold: f32) -> *const Rectangle;",
        "image_crop": "pub fn image_crop(image: u32, x: i32, y: i32, width: i32, height: i32);",
        "image_alpha_crop": "pub fn image_alpha_crop(image: u32, threshold: f32);",
        "image_color_brightness": "pub fn image_color_brightness(image: u32, factor: f32);",
        "image_flip": "pub fn image_flip(image: u32, horizontal: bool, vertical: bool);",
        "image_color_contrast": "pub fn image_color_contrast(image: u32, contrast: f32);",
        "image_alpha_mask": "pub fn image_alpha_mask(image: u32, alphaMask: u32, posX: i32, posY: i32);",
        "image_rotate": "pub fn image_rotate(image: u32, degrees: f32, filter: ImageFilter) -> u32;",
        "image_gradient": "pub fn image_gradient(width: i32, height: i32, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color) -> u32;",
        "unload_image": "pub fn unload_image(image: u32);",
        "unload_font": "pub fn unload_font(font: u32);",
        "clear_image": "pub fn clear_image(destination: u32, color: Color);",
        "draw_point_on_image": "pub fn draw_point_on_image(destination: u32, x: i32, y: i32, color: Color);",
        "draw_line_on_image": "pub fn draw_line_on_image(destination: u32, startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color);",
        "draw_rectangle_on_image": "pub fn draw_rectangle_on_image(destination: u32, posX: i32, posY: i32, width: i32, height: i32, color: Color);",
        "draw_triangle_on_image": "pub fn draw_triangle_on_image(destination: u32, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color);",
        "draw_ellipse_on_image": "pub fn draw_ellipse_on_image(destination: u32, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color);",
        "draw_circle_on_image": "pub fn draw_circle_on_image(destination: u32, centerX: i32, centerY: i32, radius: i32, color: Color);",
        "draw_polygon_on_image": "pub fn draw_polygon_on_image(destination: u32, points: *const Vector, numPoints: i32, color: Color);",
        "draw_rectangle_rounded_on_image": "pub fn draw_rectangle_rounded_on_image(destination: u32, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color);",
        "draw_image_on_image": "pub fn draw_image_on_image(destination: u32, src: u32, posX: i32, posY: i32);",
        "draw_image_tint_on_image": "pub fn draw_image_tint_on_image(destination: u32, src: u32, posX: i32, posY: i32, tint: Color);",
        "draw_image_rotated_on_image": "pub fn draw_image_rotated_on_image(destination: u32, src: u32, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: ImageFilter);",
        "draw_image_flipped_on_image": "pub fn draw_image_flipped_on_image(destination: u32, src: u32, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool);",
        "draw_image_scaled_on_image": "pub fn draw_image_scaled_on_image(destination: u32, src: u32, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: ImageFilter);",
        "draw_text_on_image": "pub fn draw_text_on_image(destination: u32, font: u32, text: *const u8, posX: i32, posY: i32, color: Color);",
        "draw_rectangle_outline": "pub fn draw_rectangle_outline(posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color);",
        "draw_triangle_outline": "pub fn draw_triangle_outline(x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color);",
        "draw_ellipse_outline": "pub fn draw_ellipse_outline(centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color);",
        "draw_circle_outline": "pub fn draw_circle_outline(centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color);",
        "draw_polygon_outline": "pub fn draw_polygon_outline(points: *const Vector, numPoints: i32, thickness: i32, color: Color);",
        "draw_arc_outline": "pub fn draw_arc_outline(centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, thickness: i32, color: Color);",
        "draw_rectangle_rounded_outline": "pub fn draw_rectangle_rounded_outline(x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color);",
        "draw_rectangle_outline_on_image": "pub fn draw_rectangle_outline_on_image(destination: u32, posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color);",
        "draw_triangle_outline_on_image": "pub fn draw_triangle_outline_on_image(destination: u32, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color);",
        "draw_ellipse_outline_on_image": "pub fn draw_ellipse_outline_on_image(destination: u32, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color);",
        "draw_circle_outline_on_image": "pub fn draw_circle_outline_on_image(destination: u32, centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color);",
        "draw_polygon_outline_on_image": "pub fn draw_polygon_outline_on_image(destination: u32, points: *const Vector, numPoints: i32, thickness: i32, color: Color);",
        "draw_rectangle_rounded_outline_on_image": "pub fn draw_rectangle_rounded_outline_on_image(destination: u32, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color);",
        "gui_begin_window": "pub fn gui_begin_window(title: *const u8, rect: Rectangle) -> bool;",
        "gui_end_window": "pub fn gui_end_window();",
        "gui_button": "pub fn gui_button(label: *const u8) -> bool;",
        "gui_label": "pub fn gui_label(text: *const u8);",
        "gui_text": "pub fn gui_text(text: *const u8);",
        "gui_checkbox": "pub fn gui_checkbox(label: *const u8, state: bool) -> bool;",
        "gui_slider": "pub fn gui_slider(value: f32, low: f32, high: f32) -> f32;",
        "gui_layout_row": "pub fn gui_layout_row(widths: *const i32, numWidths: i32, height: i32);",
        "gui_end": "pub fn gui_end();",
        "gui_draw": "pub fn gui_draw(dst: u32);",
        "key_pressed": "pub fn key_pressed(key: Key) -> bool;",
        "key_down": "pub fn key_down(key: Key) -> bool;",
        "key_released": "pub fn key_released(key: Key) -> bool;",
        "key_up": "pub fn key_up(key: Key) -> bool;",
        "gamepad_button_pressed": "pub fn gamepad_button_pressed(gamepad: i32, button: GamepadButton) -> bool;",
        "gamepad_button_down": "pub fn gamepad_button_down(gamepad: i32, button: GamepadButton) -> bool;",
        "gamepad_button_released": "pub fn gamepad_button_released(gamepad: i32, button: GamepadButton) -> bool;",
        "mouse_position": "pub fn mouse_position() -> *const Vector;",
        "mouse_button_pressed": "pub fn mouse_button_pressed(button: MouseButton) -> bool;",
        "mouse_button_down": "pub fn mouse_button_down(button: MouseButton) -> bool;",
        "mouse_button_released": "pub fn mouse_button_released(button: MouseButton) -> bool;",
        "mouse_button_up": "pub fn mouse_button_up(button: MouseButton) -> bool;",
        "load_sound": "pub fn load_sound(filename: *const u8) -> u32;",
        "play_sound": "pub fn play_sound(sound: u32, r#loop: bool);",
        "stop_sound": "pub fn stop_sound(sound: u32);",
        "unload_sound": "pub fn unload_sound(sound: u32);",
        "tts_sound": "pub fn tts_sound(text: *const u8, phonetic: bool, pitch: i32, speed: i32, throat: i32, mouth: i32, sing: bool) -> u32;",
        "sfx_sound": "pub fn sfx_sound(params: SfxParams) -> u32;",
        "sfx_generate": "pub fn sfx_generate(r#type: SfxPresetType) -> *const SfxParams;",
        "load_tilemap": "pub fn load_tilemap(filename: *const u8) -> u32;",
        "unload_tilemap": "pub fn unload_tilemap(tilemap: u32);",
        "tile_update": "pub fn tile_update(tilemap: u32, deltaTime: f32);",
        "tile_map_size": "pub fn tile_map_size(tilemap: u32) -> *const Dimensions;",
        "tile_tile_size": "pub fn tile_tile_size(tilemap: u32) -> *const Dimensions;",
        "tile_map_prop": "pub fn tile_map_prop(tilemap: u32, name: *const u8) -> *const TilemapProp;",
        "tile_map_prop_count": "pub fn tile_map_prop_count(tilemap: u32) -> i32;",
        "tile_map_prop_at": "pub fn tile_map_prop_at(tilemap: u32, index: i32) -> *const TilemapProp;",
        "tile_draw": "pub fn tile_draw(tilemap: u32, posX: i32, posY: i32);",
        "tile_draw_tint": "pub fn tile_draw_tint(tilemap: u32, posX: i32, posY: i32, tint: Color);",
        "tile_draw_on_image": "pub fn tile_draw_on_image(dst: u32, tilemap: u32, posX: i32, posY: i32);",
        "tilemap_image": "pub fn tilemap_image(tilemap: u32) -> u32;",
        "tile_layer_count": "pub fn tile_layer_count(tilemap: u32) -> i32;",
        "tile_layer_index": "pub fn tile_layer_index(tilemap: u32, name: *const u8) -> i32;",
        "tile_layer_name": "pub fn tile_layer_name(tilemap: u32, layer: i32) -> *const u8;",
        "tile_layer_type": "pub fn tile_layer_type(tilemap: u32, layer: i32);",
        "tile_layer_size": "pub fn tile_layer_size(tilemap: u32, layer: i32) -> *const Dimensions;",
        "tile_layer_visible": "pub fn tile_layer_visible(tilemap: u32, layer: i32) -> bool;",
        "tile_layer_prop": "pub fn tile_layer_prop(tilemap: u32, layer: i32, name: *const u8) -> *const TilemapProp;",
        "tile_layer_prop_count": "pub fn tile_layer_prop_count(tilemap: u32, layer: i32) -> i32;",
        "tile_layer_prop_at": "pub fn tile_layer_prop_at(tilemap: u32, layer: i32, index: i32) -> *const TilemapProp;",
        "tile_draw_layer": "pub fn tile_draw_layer(tilemap: u32, layer: i32, posX: i32, posY: i32);",
        "tile_draw_layer_tint": "pub fn tile_draw_layer_tint(tilemap: u32, layer: i32, posX: i32, posY: i32, tint: Color);",
        "tile_draw_layer_on_image": "pub fn tile_draw_layer_on_image(dst: u32, tilemap: u32, layer: i32, posX: i32, posY: i32);",
        "tile_layer_image": "pub fn tile_layer_image(tilemap: u32, layer: i32) -> u32;",
        "tile_get_tile": "pub fn tile_get_tile(tilemap: u32, layer: i32, column: i32, row: i32) -> i32;",
        "tile_set_tile": "pub fn tile_set_tile(tilemap: u32, layer: i32, column: i32, row: i32, gid: i32);",
        "tile_draw_tile": "pub fn tile_draw_tile(tilemap: u32, gid: i32, posX: i32, posY: i32);",
        "tile_image": "pub fn tile_image(tilemap: u32, gid: i32) -> u32;",
        "tile_gid_prop": "pub fn tile_gid_prop(tilemap: u32, gid: i32, name: *const u8) -> *const TilemapProp;",
        "tile_gid_prop_count": "pub fn tile_gid_prop_count(tilemap: u32, gid: i32) -> i32;",
        "tile_gid_prop_at": "pub fn tile_gid_prop_at(tilemap: u32, gid: i32, index: i32) -> *const TilemapProp;",
        "tile_object_count": "pub fn tile_object_count(tilemap: u32, layer: i32) -> i32;",
        "tile_object": "pub fn tile_object(tilemap: u32, layer: i32, index: i32) -> *const TilemapObject;",
        "tile_object_index": "pub fn tile_object_index(tilemap: u32, layer: i32, name: *const u8) -> i32;",
        "tile_object_prop": "pub fn tile_object_prop(tilemap: u32, layer: i32, index: i32, name: *const u8) -> *const TilemapProp;",
        "tile_object_prop_count": "pub fn tile_object_prop_count(tilemap: u32, layer: i32, index: i32) -> i32;",
        "tile_object_prop_at": "pub fn tile_object_prop_at(tilemap: u32, layer: i32, index: i32, propIndex: i32) -> *const TilemapProp;",
        "current_time": "pub fn current_time() -> u64;",
        "delta_time": "pub fn delta_time() -> f32;",
        "random_int": "pub fn random_int(min: i32, max: i32) -> i32;",
        "random_seed_get": "pub fn random_seed_get() -> u64;",
        "random_seed_set": "pub fn random_seed_set(seed: u64);",
        "str_to_cstr": "pub fn str_to_cstr(s: &str) -> *const u8 {"
      }
    },
    "zig": {
      "id": "zig",
      "binding": "carts/zig/null0.zig",
      "example": "carts/zig/simple",
      "title": "Zig",
      "image": "zig",
      "kind": "compiled",
      "file": "main.zig",
      "highlight": "zig",
      "callback": "export fn load() void {}",
      "entry": "pub fn main() void {}",
      "toolchain": "zig, wasm32-wasi",
      "notes": [
        "wasm32-wasi executables need a `main`, even though null0 never uses it. Keep it empty."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-zig:latest",
      "decls": {
        "color_tint": "pub extern \"null0\" fn color_tint(color: Color, tint: Color) *Color;",
        "color_fade": "pub extern \"null0\" fn color_fade(color: Color, alpha: f32) *Color;",
        "color_brightness": "pub extern \"null0\" fn color_brightness(color: Color, factor: f32) *Color;",
        "color_invert": "pub extern \"null0\" fn color_invert(color: Color) *Color;",
        "color_alpha_blend": "pub extern \"null0\" fn color_alpha_blend(dst: Color, src: Color) *Color;",
        "color_contrast": "pub extern \"null0\" fn color_contrast(color: Color, contrast: f32) *Color;",
        "color_bilinear_interpolate": "pub extern \"null0\" fn color_bilinear_interpolate(color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: f32, coordinateY: f32) *Color;",
        "new_image": "pub extern \"null0\" fn new_image(width: i32, height: i32, color: Color) Image;",
        "image_copy": "pub extern \"null0\" fn image_copy(image: Image) Image;",
        "image_subimage": "pub extern \"null0\" fn image_subimage(image: Image, x: i32, y: i32, width: i32, height: i32) Image;",
        "clear": "pub extern \"null0\" fn clear(color: Color) void;",
        "draw_point": "pub extern \"null0\" fn draw_point(x: i32, y: i32, color: Color) void;",
        "draw_line": "pub extern \"null0\" fn draw_line(startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color) void;",
        "draw_rectangle": "pub extern \"null0\" fn draw_rectangle(posX: i32, posY: i32, width: i32, height: i32, color: Color) void;",
        "draw_triangle": "pub extern \"null0\" fn draw_triangle(x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color) void;",
        "draw_ellipse": "pub extern \"null0\" fn draw_ellipse(centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color) void;",
        "draw_circle": "pub extern \"null0\" fn draw_circle(centerX: i32, centerY: i32, radius: i32, color: Color) void;",
        "draw_polygon": "pub extern \"null0\" fn draw_polygon(points: [*]const Vector, numPoints: i32, color: Color) void;",
        "draw_arc": "pub extern \"null0\" fn draw_arc(centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, color: Color) void;",
        "draw_rectangle_rounded": "pub extern \"null0\" fn draw_rectangle_rounded(x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color) void;",
        "draw_image": "pub extern \"null0\" fn draw_image(src: Image, posX: i32, posY: i32) void;",
        "draw_image_tint": "pub extern \"null0\" fn draw_image_tint(src: Image, posX: i32, posY: i32, tint: Color) void;",
        "draw_image_rotated": "pub extern \"null0\" fn draw_image_rotated(src: Image, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: ImageFilter) void;",
        "draw_image_flipped": "pub extern \"null0\" fn draw_image_flipped(src: Image, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) void;",
        "draw_image_scaled": "pub extern \"null0\" fn draw_image_scaled(src: Image, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: ImageFilter) void;",
        "draw_text": "pub extern \"null0\" fn draw_text(font: Font, text: [*:0]const u8, posX: i32, posY: i32, color: Color) void;",
        "save_image": "pub extern \"null0\" fn save_image(image: Image, filename: [*:0]const u8) void;",
        "load_image": "pub extern \"null0\" fn load_image(filename: [*:0]const u8) Image;",
        "image_resize": "pub extern \"null0\" fn image_resize(image: Image, newWidth: i32, newHeight: i32, filter: ImageFilter) Image;",
        "image_scale": "pub extern \"null0\" fn image_scale(image: Image, scaleX: f32, scaleY: f32, filter: ImageFilter) Image;",
        "image_color_replace": "pub extern \"null0\" fn image_color_replace(image: Image, color: Color, replace: Color) void;",
        "image_color_tint": "pub extern \"null0\" fn image_color_tint(image: Image, color: Color) void;",
        "image_color_fade": "pub extern \"null0\" fn image_color_fade(image: Image, alpha: f32) void;",
        "font_copy": "pub extern \"null0\" fn font_copy(font: Font) Font;",
        "font_scale": "pub extern \"null0\" fn font_scale(font: Font, scaleX: f32, scaleY: f32, filter: ImageFilter) Font;",
        "load_font_bmf": "pub extern \"null0\" fn load_font_bmf(filename: [*:0]const u8, characters: [*:0]const u8) Font;",
        "load_font_bmf_from_image": "pub extern \"null0\" fn load_font_bmf_from_image(image: Image, characters: [*:0]const u8) Font;",
        "measure_text": "pub extern \"null0\" fn measure_text(font: Font, text: [*:0]const u8, textLength: i32) *Dimensions;",
        "measure_image": "pub extern \"null0\" fn measure_image(image: Image) *Dimensions;",
        "load_font_tty": "pub extern \"null0\" fn load_font_tty(filename: [*:0]const u8, glyphWidth: i32, glyphHeight: i32, characters: [*:0]const u8) Font;",
        "load_font_tty_from_image": "pub extern \"null0\" fn load_font_tty_from_image(image: Image, glyphWidth: i32, glyphHeight: i32, characters: [*:0]const u8) Font;",
        "load_font_ttf": "pub extern \"null0\" fn load_font_ttf(filename: [*:0]const u8, fontSize: i32) Font;",
        "image_color_invert": "pub extern \"null0\" fn image_color_invert(image: Image) void;",
        "image_alpha_border": "pub extern \"null0\" fn image_alpha_border(image: Image, threshold: f32) *Rectangle;",
        "image_crop": "pub extern \"null0\" fn image_crop(image: Image, x: i32, y: i32, width: i32, height: i32) void;",
        "image_alpha_crop": "pub extern \"null0\" fn image_alpha_crop(image: Image, threshold: f32) void;",
        "image_color_brightness": "pub extern \"null0\" fn image_color_brightness(image: Image, factor: f32) void;",
        "image_flip": "pub extern \"null0\" fn image_flip(image: Image, horizontal: bool, vertical: bool) void;",
        "image_color_contrast": "pub extern \"null0\" fn image_color_contrast(image: Image, contrast: f32) void;",
        "image_alpha_mask": "pub extern \"null0\" fn image_alpha_mask(image: Image, alphaMask: Image, posX: i32, posY: i32) void;",
        "image_rotate": "pub extern \"null0\" fn image_rotate(image: Image, degrees: f32, filter: ImageFilter) Image;",
        "image_gradient": "pub extern \"null0\" fn image_gradient(width: i32, height: i32, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color) Image;",
        "unload_image": "pub extern \"null0\" fn unload_image(image: Image) void;",
        "unload_font": "pub extern \"null0\" fn unload_font(font: Font) void;",
        "clear_image": "pub extern \"null0\" fn clear_image(destination: Image, color: Color) void;",
        "draw_point_on_image": "pub extern \"null0\" fn draw_point_on_image(destination: Image, x: i32, y: i32, color: Color) void;",
        "draw_line_on_image": "pub extern \"null0\" fn draw_line_on_image(destination: Image, startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color) void;",
        "draw_rectangle_on_image": "pub extern \"null0\" fn draw_rectangle_on_image(destination: Image, posX: i32, posY: i32, width: i32, height: i32, color: Color) void;",
        "draw_triangle_on_image": "pub extern \"null0\" fn draw_triangle_on_image(destination: Image, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color) void;",
        "draw_ellipse_on_image": "pub extern \"null0\" fn draw_ellipse_on_image(destination: Image, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color) void;",
        "draw_circle_on_image": "pub extern \"null0\" fn draw_circle_on_image(destination: Image, centerX: i32, centerY: i32, radius: i32, color: Color) void;",
        "draw_polygon_on_image": "pub extern \"null0\" fn draw_polygon_on_image(destination: Image, points: [*]const Vector, numPoints: i32, color: Color) void;",
        "draw_rectangle_rounded_on_image": "pub extern \"null0\" fn draw_rectangle_rounded_on_image(destination: Image, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color) void;",
        "draw_image_on_image": "pub extern \"null0\" fn draw_image_on_image(destination: Image, src: Image, posX: i32, posY: i32) void;",
        "draw_image_tint_on_image": "pub extern \"null0\" fn draw_image_tint_on_image(destination: Image, src: Image, posX: i32, posY: i32, tint: Color) void;",
        "draw_image_rotated_on_image": "pub extern \"null0\" fn draw_image_rotated_on_image(destination: Image, src: Image, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: ImageFilter) void;",
        "draw_image_flipped_on_image": "pub extern \"null0\" fn draw_image_flipped_on_image(destination: Image, src: Image, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) void;",
        "draw_image_scaled_on_image": "pub extern \"null0\" fn draw_image_scaled_on_image(destination: Image, src: Image, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: ImageFilter) void;",
        "draw_text_on_image": "pub extern \"null0\" fn draw_text_on_image(destination: Image, font: Font, text: [*:0]const u8, posX: i32, posY: i32, color: Color) void;",
        "draw_rectangle_outline": "pub extern \"null0\" fn draw_rectangle_outline(posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color) void;",
        "draw_triangle_outline": "pub extern \"null0\" fn draw_triangle_outline(x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color) void;",
        "draw_ellipse_outline": "pub extern \"null0\" fn draw_ellipse_outline(centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color) void;",
        "draw_circle_outline": "pub extern \"null0\" fn draw_circle_outline(centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color) void;",
        "draw_polygon_outline": "pub extern \"null0\" fn draw_polygon_outline(points: [*]const Vector, numPoints: i32, thickness: i32, color: Color) void;",
        "draw_arc_outline": "pub extern \"null0\" fn draw_arc_outline(centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, thickness: i32, color: Color) void;",
        "draw_rectangle_rounded_outline": "pub extern \"null0\" fn draw_rectangle_rounded_outline(x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color) void;",
        "draw_rectangle_outline_on_image": "pub extern \"null0\" fn draw_rectangle_outline_on_image(destination: Image, posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color) void;",
        "draw_triangle_outline_on_image": "pub extern \"null0\" fn draw_triangle_outline_on_image(destination: Image, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color) void;",
        "draw_ellipse_outline_on_image": "pub extern \"null0\" fn draw_ellipse_outline_on_image(destination: Image, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color) void;",
        "draw_circle_outline_on_image": "pub extern \"null0\" fn draw_circle_outline_on_image(destination: Image, centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color) void;",
        "draw_polygon_outline_on_image": "pub extern \"null0\" fn draw_polygon_outline_on_image(destination: Image, points: [*]const Vector, numPoints: i32, thickness: i32, color: Color) void;",
        "draw_rectangle_rounded_outline_on_image": "pub extern \"null0\" fn draw_rectangle_rounded_outline_on_image(destination: Image, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color) void;",
        "gui_begin_window": "pub extern \"null0\" fn gui_begin_window(title: [*:0]const u8, rect: Rectangle) bool;",
        "gui_end_window": "pub extern \"null0\" fn gui_end_window() void;",
        "gui_button": "pub extern \"null0\" fn gui_button(label: [*:0]const u8) bool;",
        "gui_label": "pub extern \"null0\" fn gui_label(text: [*:0]const u8) void;",
        "gui_text": "pub extern \"null0\" fn gui_text(text: [*:0]const u8) void;",
        "gui_checkbox": "pub extern \"null0\" fn gui_checkbox(label: [*:0]const u8, state: bool) bool;",
        "gui_slider": "pub extern \"null0\" fn gui_slider(value: f32, low: f32, high: f32) f32;",
        "gui_layout_row": "pub extern \"null0\" fn gui_layout_row(widths: [*]const i32, numWidths: i32, height: i32) void;",
        "gui_end": "pub extern \"null0\" fn gui_end() void;",
        "gui_draw": "pub extern \"null0\" fn gui_draw(dst: Image) void;",
        "key_pressed": "pub extern \"null0\" fn key_pressed(key: Key) bool;",
        "key_down": "pub extern \"null0\" fn key_down(key: Key) bool;",
        "key_released": "pub extern \"null0\" fn key_released(key: Key) bool;",
        "key_up": "pub extern \"null0\" fn key_up(key: Key) bool;",
        "gamepad_button_pressed": "pub extern \"null0\" fn gamepad_button_pressed(gamepad: i32, button: GamepadButton) bool;",
        "gamepad_button_down": "pub extern \"null0\" fn gamepad_button_down(gamepad: i32, button: GamepadButton) bool;",
        "gamepad_button_released": "pub extern \"null0\" fn gamepad_button_released(gamepad: i32, button: GamepadButton) bool;",
        "mouse_position": "pub extern \"null0\" fn mouse_position() *Vector;",
        "mouse_button_pressed": "pub extern \"null0\" fn mouse_button_pressed(button: MouseButton) bool;",
        "mouse_button_down": "pub extern \"null0\" fn mouse_button_down(button: MouseButton) bool;",
        "mouse_button_released": "pub extern \"null0\" fn mouse_button_released(button: MouseButton) bool;",
        "mouse_button_up": "pub extern \"null0\" fn mouse_button_up(button: MouseButton) bool;",
        "load_sound": "pub extern \"null0\" fn load_sound(filename: [*:0]const u8) Sound;",
        "play_sound": "pub extern \"null0\" fn play_sound(sound: Sound, loop: bool) void;",
        "stop_sound": "pub extern \"null0\" fn stop_sound(sound: Sound) void;",
        "unload_sound": "pub extern \"null0\" fn unload_sound(sound: Sound) void;",
        "tts_sound": "pub extern \"null0\" fn tts_sound(text: [*:0]const u8, phonetic: bool, pitch: i32, speed: i32, throat: i32, mouth: i32, sing: bool) Sound;",
        "sfx_sound": "pub extern \"null0\" fn sfx_sound(params: *const SfxParams) Sound;",
        "sfx_generate": "pub extern \"null0\" fn sfx_generate(type: SfxPresetType) *SfxParams;",
        "load_tilemap": "pub extern \"null0\" fn load_tilemap(filename: [*:0]const u8) Tilemap;",
        "unload_tilemap": "pub extern \"null0\" fn unload_tilemap(tilemap: Tilemap) void;",
        "tile_update": "pub extern \"null0\" fn tile_update(tilemap: Tilemap, deltaTime: f32) void;",
        "tile_map_size": "pub extern \"null0\" fn tile_map_size(tilemap: Tilemap) *Dimensions;",
        "tile_tile_size": "pub extern \"null0\" fn tile_tile_size(tilemap: Tilemap) *Dimensions;",
        "tile_map_prop": "pub extern \"null0\" fn tile_map_prop(tilemap: Tilemap, name: [*:0]const u8) *TilemapProp;",
        "tile_map_prop_count": "pub extern \"null0\" fn tile_map_prop_count(tilemap: Tilemap) i32;",
        "tile_map_prop_at": "pub extern \"null0\" fn tile_map_prop_at(tilemap: Tilemap, index: i32) *TilemapProp;",
        "tile_draw": "pub extern \"null0\" fn tile_draw(tilemap: Tilemap, posX: i32, posY: i32) void;",
        "tile_draw_tint": "pub extern \"null0\" fn tile_draw_tint(tilemap: Tilemap, posX: i32, posY: i32, tint: Color) void;",
        "tile_draw_on_image": "pub extern \"null0\" fn tile_draw_on_image(dst: Image, tilemap: Tilemap, posX: i32, posY: i32) void;",
        "tilemap_image": "pub extern \"null0\" fn tilemap_image(tilemap: Tilemap) Image;",
        "tile_layer_count": "pub extern \"null0\" fn tile_layer_count(tilemap: Tilemap) i32;",
        "tile_layer_index": "pub extern \"null0\" fn tile_layer_index(tilemap: Tilemap, name: [*:0]const u8) i32;",
        "tile_layer_name": "pub extern \"null0\" fn tile_layer_name(tilemap: Tilemap, layer: i32) [*:0]u8;",
        "tile_layer_type": "pub extern \"null0\" fn tile_layer_type(tilemap: Tilemap, layer: i32) TileLayerKind;",
        "tile_layer_size": "pub extern \"null0\" fn tile_layer_size(tilemap: Tilemap, layer: i32) *Dimensions;",
        "tile_layer_visible": "pub extern \"null0\" fn tile_layer_visible(tilemap: Tilemap, layer: i32) bool;",
        "tile_layer_prop": "pub extern \"null0\" fn tile_layer_prop(tilemap: Tilemap, layer: i32, name: [*:0]const u8) *TilemapProp;",
        "tile_layer_prop_count": "pub extern \"null0\" fn tile_layer_prop_count(tilemap: Tilemap, layer: i32) i32;",
        "tile_layer_prop_at": "pub extern \"null0\" fn tile_layer_prop_at(tilemap: Tilemap, layer: i32, index: i32) *TilemapProp;",
        "tile_draw_layer": "pub extern \"null0\" fn tile_draw_layer(tilemap: Tilemap, layer: i32, posX: i32, posY: i32) void;",
        "tile_draw_layer_tint": "pub extern \"null0\" fn tile_draw_layer_tint(tilemap: Tilemap, layer: i32, posX: i32, posY: i32, tint: Color) void;",
        "tile_draw_layer_on_image": "pub extern \"null0\" fn tile_draw_layer_on_image(dst: Image, tilemap: Tilemap, layer: i32, posX: i32, posY: i32) void;",
        "tile_layer_image": "pub extern \"null0\" fn tile_layer_image(tilemap: Tilemap, layer: i32) Image;",
        "tile_get_tile": "pub extern \"null0\" fn tile_get_tile(tilemap: Tilemap, layer: i32, column: i32, row: i32) i32;",
        "tile_set_tile": "pub extern \"null0\" fn tile_set_tile(tilemap: Tilemap, layer: i32, column: i32, row: i32, gid: i32) void;",
        "tile_draw_tile": "pub extern \"null0\" fn tile_draw_tile(tilemap: Tilemap, gid: i32, posX: i32, posY: i32) void;",
        "tile_image": "pub extern \"null0\" fn tile_image(tilemap: Tilemap, gid: i32) Image;",
        "tile_gid_prop": "pub extern \"null0\" fn tile_gid_prop(tilemap: Tilemap, gid: i32, name: [*:0]const u8) *TilemapProp;",
        "tile_gid_prop_count": "pub extern \"null0\" fn tile_gid_prop_count(tilemap: Tilemap, gid: i32) i32;",
        "tile_gid_prop_at": "pub extern \"null0\" fn tile_gid_prop_at(tilemap: Tilemap, gid: i32, index: i32) *TilemapProp;",
        "tile_object_count": "pub extern \"null0\" fn tile_object_count(tilemap: Tilemap, layer: i32) i32;",
        "tile_object": "pub extern \"null0\" fn tile_object(tilemap: Tilemap, layer: i32, index: i32) *TilemapObject;",
        "tile_object_index": "pub extern \"null0\" fn tile_object_index(tilemap: Tilemap, layer: i32, name: [*:0]const u8) i32;",
        "tile_object_prop": "pub extern \"null0\" fn tile_object_prop(tilemap: Tilemap, layer: i32, index: i32, name: [*:0]const u8) *TilemapProp;",
        "tile_object_prop_count": "pub extern \"null0\" fn tile_object_prop_count(tilemap: Tilemap, layer: i32, index: i32) i32;",
        "tile_object_prop_at": "pub extern \"null0\" fn tile_object_prop_at(tilemap: Tilemap, layer: i32, index: i32, propIndex: i32) *TilemapProp;",
        "current_time": "pub extern \"null0\" fn current_time() u64;",
        "delta_time": "pub extern \"null0\" fn delta_time() f32;",
        "random_int": "pub extern \"null0\" fn random_int(min: i32, max: i32) i32;",
        "random_seed_get": "pub extern \"null0\" fn random_seed_get() u64;",
        "random_seed_set": "pub extern \"null0\" fn random_seed_set(seed: u64) void;"
      }
    },
    "go": {
      "id": "go",
      "binding": "carts/go/null0/null0.go",
      "example": "carts/go/simple",
      "title": "Go",
      "image": "go",
      "kind": "compiled",
      "file": "main.go",
      "highlight": "go",
      "callback": "//export load\nfunc load() {}",
      "entry": "func main() {}",
      "toolchain": "tinygo",
      "notes": [
        "The API is `CamelCase` here, wrapping the raw `//go:wasmimport` declarations.",
        "There is no working directory - `os.ReadFile(\"/main.lua\")` works, `os.ReadFile(\"main.lua\")` does not."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-go:latest",
      "decls": {
        "color_tint": "func ColorTint(color Color, tint Color) Color",
        "color_fade": "func ColorFade(color Color, alpha float32) Color",
        "color_brightness": "func ColorBrightness(color Color, factor float32) Color",
        "color_invert": "func ColorInvert(color Color) Color",
        "color_alpha_blend": "func ColorAlphaBlend(dst Color, src Color) Color",
        "color_contrast": "func ColorContrast(color Color, contrast float32) Color",
        "color_bilinear_interpolate": "func ColorBilinearInterpolate(color00 Color, color01 Color, color10 Color, color11 Color, coordinateX float32, coordinateY float32) Color",
        "new_image": "func NewImage(width int32, height int32, color Color) Image",
        "image_copy": "func ImageCopy(image Image) Image",
        "image_subimage": "func ImageSubimage(image Image, x int32, y int32, width int32, height int32) Image",
        "clear": "func Clear(color Color)",
        "draw_point": "func DrawPoint(x int32, y int32, color Color)",
        "draw_line": "func DrawLine(startPosX int32, startPosY int32, endPosX int32, endPosY int32, color Color)",
        "draw_rectangle": "func DrawRectangle(posX int32, posY int32, width int32, height int32, color Color)",
        "draw_triangle": "func DrawTriangle(x1 int32, y1 int32, x2 int32, y2 int32, x3 int32, y3 int32, color Color)",
        "draw_ellipse": "func DrawEllipse(centerX int32, centerY int32, radiusX int32, radiusY int32, color Color)",
        "draw_circle": "func DrawCircle(centerX int32, centerY int32, radius int32, color Color)",
        "draw_polygon": "func DrawPolygon(points []Vector, numPoints int32, color Color)",
        "draw_arc": "func DrawArc(centerX int32, centerY int32, radius float32, startAngle float32, endAngle float32, segments int32, color Color)",
        "draw_rectangle_rounded": "func DrawRectangleRounded(x int32, y int32, width int32, height int32, cornerRadius int32, color Color)",
        "draw_image": "func DrawImage(src Image, posX int32, posY int32)",
        "draw_image_tint": "func DrawImageTint(src Image, posX int32, posY int32, tint Color)",
        "draw_image_rotated": "func DrawImageRotated(src Image, posX int32, posY int32, degrees float32, offsetX float32, offsetY float32, filter ImageFilter)",
        "draw_image_flipped": "func DrawImageFlipped(src Image, posX int32, posY int32, flipHorizontal bool, flipVertical bool, flipDiagonal bool)",
        "draw_image_scaled": "func DrawImageScaled(src Image, posX int32, posY int32, scaleX float32, scaleY float32, offsetX float32, offsetY float32, filter ImageFilter)",
        "draw_text": "func DrawText(font Font, text string, posX int32, posY int32, color Color)",
        "save_image": "func SaveImage(image Image, filename string)",
        "load_image": "func LoadImage(filename string) Image",
        "image_resize": "func ImageResize(image Image, newWidth int32, newHeight int32, filter ImageFilter) Image",
        "image_scale": "func ImageScale(image Image, scaleX float32, scaleY float32, filter ImageFilter) Image",
        "image_color_replace": "func ImageColorReplace(image Image, color Color, replace Color)",
        "image_color_tint": "func ImageColorTint(image Image, color Color)",
        "image_color_fade": "func ImageColorFade(image Image, alpha float32)",
        "font_copy": "func FontCopy(font Font) Font",
        "font_scale": "func FontScale(font Font, scaleX float32, scaleY float32, filter ImageFilter) Font",
        "load_font_bmf": "func LoadFontBmf(filename string, characters string) Font",
        "load_font_bmf_from_image": "func LoadFontBmfFromImage(image Image, characters string) Font",
        "measure_text": "func MeasureText(font Font, text string, textLength int32) Dimensions",
        "measure_image": "func MeasureImage(image Image) Dimensions",
        "load_font_tty": "func LoadFontTty(filename string, glyphWidth int32, glyphHeight int32, characters string) Font",
        "load_font_tty_from_image": "func LoadFontTtyFromImage(image Image, glyphWidth int32, glyphHeight int32, characters string) Font",
        "load_font_ttf": "func LoadFontTtf(filename string, fontSize int32) Font",
        "image_color_invert": "func ImageColorInvert(image Image)",
        "image_alpha_border": "func ImageAlphaBorder(image Image, threshold float32) Rectangle",
        "image_crop": "func ImageCrop(image Image, x int32, y int32, width int32, height int32)",
        "image_alpha_crop": "func ImageAlphaCrop(image Image, threshold float32)",
        "image_color_brightness": "func ImageColorBrightness(image Image, factor float32)",
        "image_flip": "func ImageFlip(image Image, horizontal bool, vertical bool)",
        "image_color_contrast": "func ImageColorContrast(image Image, contrast float32)",
        "image_alpha_mask": "func ImageAlphaMask(image Image, alphaMask Image, posX int32, posY int32)",
        "image_rotate": "func ImageRotate(image Image, degrees float32, filter ImageFilter) Image",
        "image_gradient": "func ImageGradient(width int32, height int32, topLeft Color, topRight Color, bottomLeft Color, bottomRight Color) Image",
        "unload_image": "func UnloadImage(image Image)",
        "unload_font": "func UnloadFont(font Font)",
        "clear_image": "func ClearImage(destination Image, color Color)",
        "draw_point_on_image": "func DrawPointOnImage(destination Image, x int32, y int32, color Color)",
        "draw_line_on_image": "func DrawLineOnImage(destination Image, startPosX int32, startPosY int32, endPosX int32, endPosY int32, color Color)",
        "draw_rectangle_on_image": "func DrawRectangleOnImage(destination Image, posX int32, posY int32, width int32, height int32, color Color)",
        "draw_triangle_on_image": "func DrawTriangleOnImage(destination Image, x1 int32, y1 int32, x2 int32, y2 int32, x3 int32, y3 int32, color Color)",
        "draw_ellipse_on_image": "func DrawEllipseOnImage(destination Image, centerX int32, centerY int32, radiusX int32, radiusY int32, color Color)",
        "draw_circle_on_image": "func DrawCircleOnImage(destination Image, centerX int32, centerY int32, radius int32, color Color)",
        "draw_polygon_on_image": "func DrawPolygonOnImage(destination Image, points []Vector, numPoints int32, color Color)",
        "draw_rectangle_rounded_on_image": "func DrawRectangleRoundedOnImage(destination Image, x int32, y int32, width int32, height int32, cornerRadius int32, color Color)",
        "draw_image_on_image": "func DrawImageOnImage(destination Image, src Image, posX int32, posY int32)",
        "draw_image_tint_on_image": "func DrawImageTintOnImage(destination Image, src Image, posX int32, posY int32, tint Color)",
        "draw_image_rotated_on_image": "func DrawImageRotatedOnImage(destination Image, src Image, posX int32, posY int32, degrees float32, offsetX float32, offsetY float32, filter ImageFilter)",
        "draw_image_flipped_on_image": "func DrawImageFlippedOnImage(destination Image, src Image, posX int32, posY int32, flipHorizontal bool, flipVertical bool, flipDiagonal bool)",
        "draw_image_scaled_on_image": "func DrawImageScaledOnImage(destination Image, src Image, posX int32, posY int32, scaleX float32, scaleY float32, offsetX float32, offsetY float32, filter ImageFilter)",
        "draw_text_on_image": "func DrawTextOnImage(destination Image, font Font, text string, posX int32, posY int32, color Color)",
        "draw_rectangle_outline": "func DrawRectangleOutline(posX int32, posY int32, width int32, height int32, thickness int32, color Color)",
        "draw_triangle_outline": "func DrawTriangleOutline(x1 int32, y1 int32, x2 int32, y2 int32, x3 int32, y3 int32, thickness int32, color Color)",
        "draw_ellipse_outline": "func DrawEllipseOutline(centerX int32, centerY int32, radiusX int32, radiusY int32, thickness int32, color Color)",
        "draw_circle_outline": "func DrawCircleOutline(centerX int32, centerY int32, radius int32, thickness int32, color Color)",
        "draw_polygon_outline": "func DrawPolygonOutline(points []Vector, numPoints int32, thickness int32, color Color)",
        "draw_arc_outline": "func DrawArcOutline(centerX int32, centerY int32, radius float32, startAngle float32, endAngle float32, segments int32, thickness int32, color Color)",
        "draw_rectangle_rounded_outline": "func DrawRectangleRoundedOutline(x int32, y int32, width int32, height int32, cornerRadius int32, thickness int32, color Color)",
        "draw_rectangle_outline_on_image": "func DrawRectangleOutlineOnImage(destination Image, posX int32, posY int32, width int32, height int32, thickness int32, color Color)",
        "draw_triangle_outline_on_image": "func DrawTriangleOutlineOnImage(destination Image, x1 int32, y1 int32, x2 int32, y2 int32, x3 int32, y3 int32, thickness int32, color Color)",
        "draw_ellipse_outline_on_image": "func DrawEllipseOutlineOnImage(destination Image, centerX int32, centerY int32, radiusX int32, radiusY int32, thickness int32, color Color)",
        "draw_circle_outline_on_image": "func DrawCircleOutlineOnImage(destination Image, centerX int32, centerY int32, radius int32, thickness int32, color Color)",
        "draw_polygon_outline_on_image": "func DrawPolygonOutlineOnImage(destination Image, points []Vector, numPoints int32, thickness int32, color Color)",
        "draw_rectangle_rounded_outline_on_image": "func DrawRectangleRoundedOutlineOnImage(destination Image, x int32, y int32, width int32, height int32, cornerRadius int32, thickness int32, color Color)",
        "gui_begin_window": "func GuiBeginWindow(title string, rect Rectangle) bool",
        "gui_end_window": "func GuiEndWindow()",
        "gui_button": "func GuiButton(label string) bool",
        "gui_label": "func GuiLabel(text string)",
        "gui_text": "func GuiText(text string)",
        "gui_checkbox": "func GuiCheckbox(label string, state bool) bool",
        "gui_slider": "func GuiSlider(value float32, low float32, high float32) float32",
        "gui_layout_row": "func GuiLayoutRow(widths []int32, numWidths int32, height int32)",
        "gui_end": "func GuiEnd()",
        "gui_draw": "func GuiDraw(dst Image)",
        "key_pressed": "func KeyPressed(key Key) bool",
        "key_down": "func KeyDown(key Key) bool",
        "key_released": "func KeyReleased(key Key) bool",
        "key_up": "func KeyUp(key Key) bool",
        "gamepad_button_pressed": "func GamepadButtonPressed(gamepad int32, button GamepadButton) bool",
        "gamepad_button_down": "func GamepadButtonDown(gamepad int32, button GamepadButton) bool",
        "gamepad_button_released": "func GamepadButtonReleased(gamepad int32, button GamepadButton) bool",
        "mouse_position": "func MousePosition() Vector",
        "mouse_button_pressed": "func MouseButtonPressed(button MouseButton) bool",
        "mouse_button_down": "func MouseButtonDown(button MouseButton) bool",
        "mouse_button_released": "func MouseButtonReleased(button MouseButton) bool",
        "mouse_button_up": "func MouseButtonUp(button MouseButton) bool",
        "load_sound": "func LoadSound(filename string) Sound",
        "play_sound": "func PlaySound(sound Sound, loop bool)",
        "stop_sound": "func StopSound(sound Sound)",
        "unload_sound": "func UnloadSound(sound Sound)",
        "tts_sound": "func TtsSound(text string, phonetic bool, pitch int32, speed int32, throat int32, mouth int32, sing bool) Sound",
        "sfx_sound": "func SfxSound(params SfxParams) Sound",
        "sfx_generate": "func SfxGenerate(type_ SfxPresetType) SfxParams",
        "load_tilemap": "func LoadTilemap(filename string) Tilemap",
        "unload_tilemap": "func UnloadTilemap(tilemap Tilemap)",
        "tile_update": "func TileUpdate(tilemap Tilemap, deltaTime float32)",
        "tile_map_size": "func TileMapSize(tilemap Tilemap) Dimensions",
        "tile_tile_size": "func TileTileSize(tilemap Tilemap) Dimensions",
        "tile_map_prop": "func TileMapProp(tilemap Tilemap, name string) TilemapProp",
        "tile_map_prop_count": "func TileMapPropCount(tilemap Tilemap) int32",
        "tile_map_prop_at": "func TileMapPropAt(tilemap Tilemap, index int32) TilemapProp",
        "tile_draw": "func TileDraw(tilemap Tilemap, posX int32, posY int32)",
        "tile_draw_tint": "func TileDrawTint(tilemap Tilemap, posX int32, posY int32, tint Color)",
        "tile_draw_on_image": "func TileDrawOnImage(dst Image, tilemap Tilemap, posX int32, posY int32)",
        "tilemap_image": "func TilemapImage(tilemap Tilemap) Image",
        "tile_layer_count": "func TileLayerCount(tilemap Tilemap) int32",
        "tile_layer_index": "func TileLayerIndex(tilemap Tilemap, name string) int32",
        "tile_layer_name": "func TileLayerName(tilemap Tilemap, layer int32) string",
        "tile_layer_type": "func TileLayerType(tilemap Tilemap, layer int32) TileLayerKind",
        "tile_layer_size": "func TileLayerSize(tilemap Tilemap, layer int32) Dimensions",
        "tile_layer_visible": "func TileLayerVisible(tilemap Tilemap, layer int32) bool",
        "tile_layer_prop": "func TileLayerProp(tilemap Tilemap, layer int32, name string) TilemapProp",
        "tile_layer_prop_count": "func TileLayerPropCount(tilemap Tilemap, layer int32) int32",
        "tile_layer_prop_at": "func TileLayerPropAt(tilemap Tilemap, layer int32, index int32) TilemapProp",
        "tile_draw_layer": "func TileDrawLayer(tilemap Tilemap, layer int32, posX int32, posY int32)",
        "tile_draw_layer_tint": "func TileDrawLayerTint(tilemap Tilemap, layer int32, posX int32, posY int32, tint Color)",
        "tile_draw_layer_on_image": "func TileDrawLayerOnImage(dst Image, tilemap Tilemap, layer int32, posX int32, posY int32)",
        "tile_layer_image": "func TileLayerImage(tilemap Tilemap, layer int32) Image",
        "tile_get_tile": "func TileGetTile(tilemap Tilemap, layer int32, column int32, row int32) int32",
        "tile_set_tile": "func TileSetTile(tilemap Tilemap, layer int32, column int32, row int32, gid int32)",
        "tile_draw_tile": "func TileDrawTile(tilemap Tilemap, gid int32, posX int32, posY int32)",
        "tile_image": "func TileImage(tilemap Tilemap, gid int32) Image",
        "tile_gid_prop": "func TileGidProp(tilemap Tilemap, gid int32, name string) TilemapProp",
        "tile_gid_prop_count": "func TileGidPropCount(tilemap Tilemap, gid int32) int32",
        "tile_gid_prop_at": "func TileGidPropAt(tilemap Tilemap, gid int32, index int32) TilemapProp",
        "tile_object_count": "func TileObjectCount(tilemap Tilemap, layer int32) int32",
        "tile_object": "func TileObject(tilemap Tilemap, layer int32, index int32) TilemapObject",
        "tile_object_index": "func TileObjectIndex(tilemap Tilemap, layer int32, name string) int32",
        "tile_object_prop": "func TileObjectProp(tilemap Tilemap, layer int32, index int32, name string) TilemapProp",
        "tile_object_prop_count": "func TileObjectPropCount(tilemap Tilemap, layer int32, index int32) int32",
        "tile_object_prop_at": "func TileObjectPropAt(tilemap Tilemap, layer int32, index int32, propIndex int32) TilemapProp",
        "current_time": "func CurrentTime() uint64",
        "delta_time": "func DeltaTime() float32",
        "random_int": "func RandomInt(min int32, max int32) int32",
        "random_seed_get": "func RandomSeedGet() uint64",
        "random_seed_set": "func RandomSeedSet(seed uint64)"
      }
    },
    "nim": {
      "id": "nim",
      "binding": "carts/nim/null0.nim",
      "example": "carts/nim/simple",
      "title": "Nim",
      "image": "nim",
      "kind": "compiled",
      "file": "main.nim",
      "highlight": "nim",
      "callback": "proc load*() {.wasm.} =",
      "toolchain": "nim + wasi-sdk clang",
      "notes": [
        "`import null0`."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-nim:latest",
      "decls": {
        "color_tint": "proc color_tint*(color: Color, tint: Color): Color {.null0_import.}",
        "color_fade": "proc color_fade*(color: Color, alpha: cfloat): Color {.null0_import.}",
        "color_brightness": "proc color_brightness*(color: Color, factor: cfloat): Color {.null0_import.}",
        "color_invert": "proc color_invert*(color: Color): Color {.null0_import.}",
        "color_alpha_blend": "proc color_alpha_blend*(dst: Color, src: Color): Color {.null0_import.}",
        "color_contrast": "proc color_contrast*(color: Color, contrast: cfloat): Color {.null0_import.}",
        "color_bilinear_interpolate": "proc color_bilinear_interpolate*(color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: cfloat, coordinateY: cfloat): Color {.null0_import.}",
        "new_image": "proc new_image*(width: cint, height: cint, color: Color): uint32 {.null0_import.}",
        "image_copy": "proc image_copy*(image: uint32): uint32 {.null0_import.}",
        "image_subimage": "proc image_subimage*(image: uint32, x: cint, y: cint, width: cint, height: cint): uint32 {.null0_import.}",
        "clear": "proc clear*(color: Color) {.null0_import.}",
        "draw_point": "proc draw_point*(x: cint, y: cint, color: Color) {.null0_import.}",
        "draw_line": "proc draw_line*(startPosX: cint, startPosY: cint, endPosX: cint, endPosY: cint, color: Color) {.null0_import.}",
        "draw_rectangle": "proc draw_rectangle*(posX: cint, posY: cint, width: cint, height: cint, color: Color) {.null0_import.}",
        "draw_triangle": "proc draw_triangle*(x1: cint, y1: cint, x2: cint, y2: cint, x3: cint, y3: cint, color: Color) {.null0_import.}",
        "draw_ellipse": "proc draw_ellipse*(centerX: cint, centerY: cint, radiusX: cint, radiusY: cint, color: Color) {.null0_import.}",
        "draw_circle": "proc draw_circle*(centerX: cint, centerY: cint, radius: cint, color: Color) {.null0_import.}",
        "draw_polygon": "proc draw_polygon*(points: ptr Vector, numPoints: cint, color: Color) {.null0_import.}",
        "draw_arc": "proc draw_arc*(centerX: cint, centerY: cint, radius: cfloat, startAngle: cfloat, endAngle: cfloat, segments: cint, color: Color) {.null0_import.}",
        "draw_rectangle_rounded": "proc draw_rectangle_rounded*(x: cint, y: cint, width: cint, height: cint, cornerRadius: cint, color: Color) {.null0_import.}",
        "draw_image": "proc draw_image*(src: uint32, posX: cint, posY: cint) {.null0_import.}",
        "draw_image_tint": "proc draw_image_tint*(src: uint32, posX: cint, posY: cint, tint: Color) {.null0_import.}",
        "draw_image_rotated": "proc draw_image_rotated*(src: uint32, posX: cint, posY: cint, degrees: cfloat, offsetX: cfloat, offsetY: cfloat, filter: ImageFilter) {.null0_import.}",
        "draw_image_flipped": "proc draw_image_flipped*(src: uint32, posX: cint, posY: cint, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) {.null0_import.}",
        "draw_image_scaled": "proc draw_image_scaled*(src: uint32, posX: cint, posY: cint, scaleX: cfloat, scaleY: cfloat, offsetX: cfloat, offsetY: cfloat, filter: ImageFilter) {.null0_import.}",
        "draw_text": "proc draw_text*(font: uint32, text: cstring, posX: cint, posY: cint, color: Color) {.null0_import.}",
        "save_image": "proc save_image*(image: uint32, filename: cstring) {.null0_import.}",
        "load_image": "proc load_image*(filename: cstring): uint32 {.null0_import.}",
        "image_resize": "proc image_resize*(image: uint32, newWidth: cint, newHeight: cint, filter: ImageFilter): uint32 {.null0_import.}",
        "image_scale": "proc image_scale*(image: uint32, scaleX: cfloat, scaleY: cfloat, filter: ImageFilter): uint32 {.null0_import.}",
        "image_color_replace": "proc image_color_replace*(image: uint32, color: Color, replace: Color) {.null0_import.}",
        "image_color_tint": "proc image_color_tint*(image: uint32, color: Color) {.null0_import.}",
        "image_color_fade": "proc image_color_fade*(image: uint32, alpha: cfloat) {.null0_import.}",
        "font_copy": "proc font_copy*(font: uint32): uint32 {.null0_import.}",
        "font_scale": "proc font_scale*(font: uint32, scaleX: cfloat, scaleY: cfloat, filter: ImageFilter): uint32 {.null0_import.}",
        "load_font_bmf": "proc load_font_bmf*(filename: cstring, characters: cstring): uint32 {.null0_import.}",
        "load_font_bmf_from_image": "proc load_font_bmf_from_image*(image: uint32, characters: cstring): uint32 {.null0_import.}",
        "measure_text": "proc measure_text*(font: uint32, text: cstring, textLength: cint): Dimensions {.null0_import.}",
        "measure_image": "proc measure_image*(image: uint32): Dimensions {.null0_import.}",
        "load_font_tty": "proc load_font_tty*(filename: cstring, glyphWidth: cint, glyphHeight: cint, characters: cstring): uint32 {.null0_import.}",
        "load_font_tty_from_image": "proc load_font_tty_from_image*(image: uint32, glyphWidth: cint, glyphHeight: cint, characters: cstring): uint32 {.null0_import.}",
        "load_font_ttf": "proc load_font_ttf*(filename: cstring, fontSize: cint): uint32 {.null0_import.}",
        "image_color_invert": "proc image_color_invert*(image: uint32) {.null0_import.}",
        "image_alpha_border": "proc image_alpha_border*(image: uint32, threshold: cfloat): Rectangle {.null0_import.}",
        "image_crop": "proc image_crop*(image: uint32, x: cint, y: cint, width: cint, height: cint) {.null0_import.}",
        "image_alpha_crop": "proc image_alpha_crop*(image: uint32, threshold: cfloat) {.null0_import.}",
        "image_color_brightness": "proc image_color_brightness*(image: uint32, factor: cfloat) {.null0_import.}",
        "image_flip": "proc image_flip*(image: uint32, horizontal: bool, vertical: bool) {.null0_import.}",
        "image_color_contrast": "proc image_color_contrast*(image: uint32, contrast: cfloat) {.null0_import.}",
        "image_alpha_mask": "proc image_alpha_mask*(image: uint32, alphaMask: uint32, posX: cint, posY: cint) {.null0_import.}",
        "image_rotate": "proc image_rotate*(image: uint32, degrees: cfloat, filter: ImageFilter): uint32 {.null0_import.}",
        "image_gradient": "proc image_gradient*(width: cint, height: cint, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color): uint32 {.null0_import.}",
        "unload_image": "proc unload_image*(image: uint32) {.null0_import.}",
        "unload_font": "proc unload_font*(font: uint32) {.null0_import.}",
        "clear_image": "proc clear_image*(destination: uint32, color: Color) {.null0_import.}",
        "draw_point_on_image": "proc draw_point_on_image*(destination: uint32, x: cint, y: cint, color: Color) {.null0_import.}",
        "draw_line_on_image": "proc draw_line_on_image*(destination: uint32, startPosX: cint, startPosY: cint, endPosX: cint, endPosY: cint, color: Color) {.null0_import.}",
        "draw_rectangle_on_image": "proc draw_rectangle_on_image*(destination: uint32, posX: cint, posY: cint, width: cint, height: cint, color: Color) {.null0_import.}",
        "draw_triangle_on_image": "proc draw_triangle_on_image*(destination: uint32, x1: cint, y1: cint, x2: cint, y2: cint, x3: cint, y3: cint, color: Color) {.null0_import.}",
        "draw_ellipse_on_image": "proc draw_ellipse_on_image*(destination: uint32, centerX: cint, centerY: cint, radiusX: cint, radiusY: cint, color: Color) {.null0_import.}",
        "draw_circle_on_image": "proc draw_circle_on_image*(destination: uint32, centerX: cint, centerY: cint, radius: cint, color: Color) {.null0_import.}",
        "draw_polygon_on_image": "proc draw_polygon_on_image*(destination: uint32, points: ptr Vector, numPoints: cint, color: Color) {.null0_import.}",
        "draw_rectangle_rounded_on_image": "proc draw_rectangle_rounded_on_image*(destination: uint32, x: cint, y: cint, width: cint, height: cint, cornerRadius: cint, color: Color) {.null0_import.}",
        "draw_image_on_image": "proc draw_image_on_image*(destination: uint32, src: uint32, posX: cint, posY: cint) {.null0_import.}",
        "draw_image_tint_on_image": "proc draw_image_tint_on_image*(destination: uint32, src: uint32, posX: cint, posY: cint, tint: Color) {.null0_import.}",
        "draw_image_rotated_on_image": "proc draw_image_rotated_on_image*(destination: uint32, src: uint32, posX: cint, posY: cint, degrees: cfloat, offsetX: cfloat, offsetY: cfloat, filter: ImageFilter) {.null0_import.}",
        "draw_image_flipped_on_image": "proc draw_image_flipped_on_image*(destination: uint32, src: uint32, posX: cint, posY: cint, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) {.null0_import.}",
        "draw_image_scaled_on_image": "proc draw_image_scaled_on_image*(destination: uint32, src: uint32, posX: cint, posY: cint, scaleX: cfloat, scaleY: cfloat, offsetX: cfloat, offsetY: cfloat, filter: ImageFilter) {.null0_import.}",
        "draw_text_on_image": "proc draw_text_on_image*(destination: uint32, font: uint32, text: cstring, posX: cint, posY: cint, color: Color) {.null0_import.}",
        "draw_rectangle_outline": "proc draw_rectangle_outline*(posX: cint, posY: cint, width: cint, height: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_triangle_outline": "proc draw_triangle_outline*(x1: cint, y1: cint, x2: cint, y2: cint, x3: cint, y3: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_ellipse_outline": "proc draw_ellipse_outline*(centerX: cint, centerY: cint, radiusX: cint, radiusY: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_circle_outline": "proc draw_circle_outline*(centerX: cint, centerY: cint, radius: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_polygon_outline": "proc draw_polygon_outline*(points: ptr Vector, numPoints: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_arc_outline": "proc draw_arc_outline*(centerX: cint, centerY: cint, radius: cfloat, startAngle: cfloat, endAngle: cfloat, segments: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_rectangle_rounded_outline": "proc draw_rectangle_rounded_outline*(x: cint, y: cint, width: cint, height: cint, cornerRadius: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_rectangle_outline_on_image": "proc draw_rectangle_outline_on_image*(destination: uint32, posX: cint, posY: cint, width: cint, height: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_triangle_outline_on_image": "proc draw_triangle_outline_on_image*(destination: uint32, x1: cint, y1: cint, x2: cint, y2: cint, x3: cint, y3: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_ellipse_outline_on_image": "proc draw_ellipse_outline_on_image*(destination: uint32, centerX: cint, centerY: cint, radiusX: cint, radiusY: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_circle_outline_on_image": "proc draw_circle_outline_on_image*(destination: uint32, centerX: cint, centerY: cint, radius: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_polygon_outline_on_image": "proc draw_polygon_outline_on_image*(destination: uint32, points: ptr Vector, numPoints: cint, thickness: cint, color: Color) {.null0_import.}",
        "draw_rectangle_rounded_outline_on_image": "proc draw_rectangle_rounded_outline_on_image*(destination: uint32, x: cint, y: cint, width: cint, height: cint, cornerRadius: cint, thickness: cint, color: Color) {.null0_import.}",
        "gui_begin_window": "proc gui_begin_window*(title: cstring, rect: Rectangle): bool {.null0_import.}",
        "gui_end_window": "proc gui_end_window*() {.null0_import.}",
        "gui_button": "proc gui_button*(label: cstring): bool {.null0_import.}",
        "gui_label": "proc gui_label*(text: cstring) {.null0_import.}",
        "gui_text": "proc gui_text*(text: cstring) {.null0_import.}",
        "gui_checkbox": "proc gui_checkbox*(label: cstring, state: bool): bool {.null0_import.}",
        "gui_slider": "proc gui_slider*(value: cfloat, low: cfloat, high: cfloat): cfloat {.null0_import.}",
        "gui_layout_row": "proc gui_layout_row*(widths: ptr int32, numWidths: cint, height: cint) {.null0_import.}",
        "gui_end": "proc gui_end*() {.null0_import.}",
        "gui_draw": "proc gui_draw*(dst: uint32) {.null0_import.}",
        "key_pressed": "proc key_pressed*(key: Key): bool {.null0_import.}",
        "key_down": "proc key_down*(key: Key): bool {.null0_import.}",
        "key_released": "proc key_released*(key: Key): bool {.null0_import.}",
        "key_up": "proc key_up*(key: Key): bool {.null0_import.}",
        "gamepad_button_pressed": "proc gamepad_button_pressed*(gamepad: cint, button: GamepadButton): bool {.null0_import.}",
        "gamepad_button_down": "proc gamepad_button_down*(gamepad: cint, button: GamepadButton): bool {.null0_import.}",
        "gamepad_button_released": "proc gamepad_button_released*(gamepad: cint, button: GamepadButton): bool {.null0_import.}",
        "mouse_position": "proc mouse_position*(): Vector {.null0_import.}",
        "mouse_button_pressed": "proc mouse_button_pressed*(button: MouseButton): bool {.null0_import.}",
        "mouse_button_down": "proc mouse_button_down*(button: MouseButton): bool {.null0_import.}",
        "mouse_button_released": "proc mouse_button_released*(button: MouseButton): bool {.null0_import.}",
        "mouse_button_up": "proc mouse_button_up*(button: MouseButton): bool {.null0_import.}",
        "load_sound": "proc load_sound*(filename: cstring): uint32 {.null0_import.}",
        "play_sound": "proc play_sound*(sound: uint32, loop: bool) {.null0_import.}",
        "stop_sound": "proc stop_sound*(sound: uint32) {.null0_import.}",
        "unload_sound": "proc unload_sound*(sound: uint32) {.null0_import.}",
        "tts_sound": "proc tts_sound*(text: cstring, phonetic: bool, pitch: cint, speed: cint, throat: cint, mouth: cint, sing: bool): uint32 {.null0_import.}",
        "sfx_sound": "proc sfx_sound*(params: SfxParams): uint32 {.null0_import.}",
        "sfx_generate": "proc sfx_generate*(`type`: SfxPresetType): SfxParams {.null0_import.}",
        "load_tilemap": "proc load_tilemap*(filename: cstring): uint32 {.null0_import.}",
        "unload_tilemap": "proc unload_tilemap*(tilemap: uint32) {.null0_import.}",
        "tile_update": "proc tile_update*(tilemap: uint32, deltaTime: cfloat) {.null0_import.}",
        "tile_map_size": "proc tile_map_size*(tilemap: uint32): Dimensions {.null0_import.}",
        "tile_tile_size": "proc tile_tile_size*(tilemap: uint32): Dimensions {.null0_import.}",
        "tile_map_prop": "proc tile_map_prop*(tilemap: uint32, name: cstring): TilemapProp {.null0_import.}",
        "tile_map_prop_count": "proc tile_map_prop_count*(tilemap: uint32): cint {.null0_import.}",
        "tile_map_prop_at": "proc tile_map_prop_at*(tilemap: uint32, index: cint): TilemapProp {.null0_import.}",
        "tile_draw": "proc tile_draw*(tilemap: uint32, posX: cint, posY: cint) {.null0_import.}",
        "tile_draw_tint": "proc tile_draw_tint*(tilemap: uint32, posX: cint, posY: cint, tint: Color) {.null0_import.}",
        "tile_draw_on_image": "proc tile_draw_on_image*(dst: uint32, tilemap: uint32, posX: cint, posY: cint) {.null0_import.}",
        "tilemap_image": "proc tilemap_image*(tilemap: uint32): uint32 {.null0_import.}",
        "tile_layer_count": "proc tile_layer_count*(tilemap: uint32): cint {.null0_import.}",
        "tile_layer_index": "proc tile_layer_index*(tilemap: uint32, name: cstring): cint {.null0_import.}",
        "tile_layer_name": "proc tile_layer_name*(tilemap: uint32, layer: cint): cstring {.null0_import.}",
        "tile_layer_type": "proc tile_layer_type*(tilemap: uint32, layer: cint) {.null0_import.}",
        "tile_layer_size": "proc tile_layer_size*(tilemap: uint32, layer: cint): Dimensions {.null0_import.}",
        "tile_layer_visible": "proc tile_layer_visible*(tilemap: uint32, layer: cint): bool {.null0_import.}",
        "tile_layer_prop": "proc tile_layer_prop*(tilemap: uint32, layer: cint, name: cstring): TilemapProp {.null0_import.}",
        "tile_layer_prop_count": "proc tile_layer_prop_count*(tilemap: uint32, layer: cint): cint {.null0_import.}",
        "tile_layer_prop_at": "proc tile_layer_prop_at*(tilemap: uint32, layer: cint, index: cint): TilemapProp {.null0_import.}",
        "tile_draw_layer": "proc tile_draw_layer*(tilemap: uint32, layer: cint, posX: cint, posY: cint) {.null0_import.}",
        "tile_draw_layer_tint": "proc tile_draw_layer_tint*(tilemap: uint32, layer: cint, posX: cint, posY: cint, tint: Color) {.null0_import.}",
        "tile_draw_layer_on_image": "proc tile_draw_layer_on_image*(dst: uint32, tilemap: uint32, layer: cint, posX: cint, posY: cint) {.null0_import.}",
        "tile_layer_image": "proc tile_layer_image*(tilemap: uint32, layer: cint): uint32 {.null0_import.}",
        "tile_get_tile": "proc tile_get_tile*(tilemap: uint32, layer: cint, column: cint, row: cint): cint {.null0_import.}",
        "tile_set_tile": "proc tile_set_tile*(tilemap: uint32, layer: cint, column: cint, row: cint, gid: cint) {.null0_import.}",
        "tile_draw_tile": "proc tile_draw_tile*(tilemap: uint32, gid: cint, posX: cint, posY: cint) {.null0_import.}",
        "tile_image": "proc tile_image*(tilemap: uint32, gid: cint): uint32 {.null0_import.}",
        "tile_gid_prop": "proc tile_gid_prop*(tilemap: uint32, gid: cint, name: cstring): TilemapProp {.null0_import.}",
        "tile_gid_prop_count": "proc tile_gid_prop_count*(tilemap: uint32, gid: cint): cint {.null0_import.}",
        "tile_gid_prop_at": "proc tile_gid_prop_at*(tilemap: uint32, gid: cint, index: cint): TilemapProp {.null0_import.}",
        "tile_object_count": "proc tile_object_count*(tilemap: uint32, layer: cint): cint {.null0_import.}",
        "tile_object": "proc tile_object*(tilemap: uint32, layer: cint, index: cint): TilemapObject {.null0_import.}",
        "tile_object_index": "proc tile_object_index*(tilemap: uint32, layer: cint, name: cstring): cint {.null0_import.}",
        "tile_object_prop": "proc tile_object_prop*(tilemap: uint32, layer: cint, index: cint, name: cstring): TilemapProp {.null0_import.}",
        "tile_object_prop_count": "proc tile_object_prop_count*(tilemap: uint32, layer: cint, index: cint): cint {.null0_import.}",
        "tile_object_prop_at": "proc tile_object_prop_at*(tilemap: uint32, layer: cint, index: cint, propIndex: cint): TilemapProp {.null0_import.}",
        "current_time": "proc current_time*(): uint64 {.null0_import.}",
        "delta_time": "proc delta_time*(): cfloat {.null0_import.}",
        "random_int": "proc random_int*(min: cint, max: cint): cint {.null0_import.}",
        "random_seed_get": "proc random_seed_get*(): uint64 {.null0_import.}",
        "random_seed_set": "proc random_seed_set*(seed: uint64) {.null0_import.}",
        "main": "proc main*(argc: cint, argv: ptr cstring): cint {.wasm.} ="
      }
    },
    "nelua": {
      "id": "nelua",
      "binding": "carts/nelua/null0.nelua",
      "example": "carts/nelua/simple",
      "title": "Nelua",
      "image": "nelua",
      "kind": "compiled",
      "file": "main.nelua",
      "highlight": "lua",
      "callback": "local function load() <cexport'load'> end",
      "toolchain": "nelua + wasi-sdk clang",
      "notes": [
        "`require 'null0'`. Nelua compiles to C, so it needs null0.h alongside null0.nelua."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-nelua:latest",
      "decls": {
        "color_tint": "global function color_tint(color: Color, tint: Color): *Color <cimport,nodecl> end",
        "color_fade": "global function color_fade(color: Color, alpha: float32): *Color <cimport,nodecl> end",
        "color_brightness": "global function color_brightness(color: Color, factor: float32): *Color <cimport,nodecl> end",
        "color_invert": "global function color_invert(color: Color): *Color <cimport,nodecl> end",
        "color_alpha_blend": "global function color_alpha_blend(dst: Color, src: Color): *Color <cimport,nodecl> end",
        "color_contrast": "global function color_contrast(color: Color, contrast: float32): *Color <cimport,nodecl> end",
        "color_bilinear_interpolate": "global function color_bilinear_interpolate(color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: float32, coordinateY: float32): *Color <cimport,nodecl> end",
        "new_image": "global function new_image(width: int32, height: int32, color: Color): uint32 <cimport,nodecl> end",
        "image_copy": "global function image_copy(image: uint32): uint32 <cimport,nodecl> end",
        "image_subimage": "global function image_subimage(image: uint32, x: int32, y: int32, width: int32, height: int32): uint32 <cimport,nodecl> end",
        "clear": "global function clear(color: Color): void <cimport,nodecl> end",
        "draw_point": "global function draw_point(x: int32, y: int32, color: Color): void <cimport,nodecl> end",
        "draw_line": "global function draw_line(startPosX: int32, startPosY: int32, endPosX: int32, endPosY: int32, color: Color): void <cimport,nodecl> end",
        "draw_rectangle": "global function draw_rectangle(posX: int32, posY: int32, width: int32, height: int32, color: Color): void <cimport,nodecl> end",
        "draw_triangle": "global function draw_triangle(x1: int32, y1: int32, x2: int32, y2: int32, x3: int32, y3: int32, color: Color): void <cimport,nodecl> end",
        "draw_ellipse": "global function draw_ellipse(centerX: int32, centerY: int32, radiusX: int32, radiusY: int32, color: Color): void <cimport,nodecl> end",
        "draw_circle": "global function draw_circle(centerX: int32, centerY: int32, radius: int32, color: Color): void <cimport,nodecl> end",
        "draw_polygon": "global function draw_polygon(points: *Vector, numPoints: int32, color: Color): void <cimport,nodecl> end",
        "draw_arc": "global function draw_arc(centerX: int32, centerY: int32, radius: float32, startAngle: float32, endAngle: float32, segments: int32, color: Color): void <cimport,nodecl> end",
        "draw_rectangle_rounded": "global function draw_rectangle_rounded(x: int32, y: int32, width: int32, height: int32, cornerRadius: int32, color: Color): void <cimport,nodecl> end",
        "draw_image": "global function draw_image(src: uint32, posX: int32, posY: int32): void <cimport,nodecl> end",
        "draw_image_tint": "global function draw_image_tint(src: uint32, posX: int32, posY: int32, tint: Color): void <cimport,nodecl> end",
        "draw_image_rotated": "global function draw_image_rotated(src: uint32, posX: int32, posY: int32, degrees: float32, offsetX: float32, offsetY: float32, filter: ImageFilter): void <cimport,nodecl> end",
        "draw_image_flipped": "global function draw_image_flipped(src: uint32, posX: int32, posY: int32, flipHorizontal: boolean, flipVertical: boolean, flipDiagonal: boolean): void <cimport,nodecl> end",
        "draw_image_scaled": "global function draw_image_scaled(src: uint32, posX: int32, posY: int32, scaleX: float32, scaleY: float32, offsetX: float32, offsetY: float32, filter: ImageFilter): void <cimport,nodecl> end",
        "draw_text": "global function draw_text(font: uint32, text: cstring, posX: int32, posY: int32, color: Color): void <cimport,nodecl> end",
        "save_image": "global function save_image(image: uint32, filename: cstring): void <cimport,nodecl> end",
        "load_image": "global function load_image(filename: cstring): uint32 <cimport,nodecl> end",
        "image_resize": "global function image_resize(image: uint32, newWidth: int32, newHeight: int32, filter: ImageFilter): uint32 <cimport,nodecl> end",
        "image_scale": "global function image_scale(image: uint32, scaleX: float32, scaleY: float32, filter: ImageFilter): uint32 <cimport,nodecl> end",
        "image_color_replace": "global function image_color_replace(image: uint32, color: Color, replace: Color): void <cimport,nodecl> end",
        "image_color_tint": "global function image_color_tint(image: uint32, color: Color): void <cimport,nodecl> end",
        "image_color_fade": "global function image_color_fade(image: uint32, alpha: float32): void <cimport,nodecl> end",
        "font_copy": "global function font_copy(font: uint32): uint32 <cimport,nodecl> end",
        "font_scale": "global function font_scale(font: uint32, scaleX: float32, scaleY: float32, filter: ImageFilter): uint32 <cimport,nodecl> end",
        "load_font_bmf": "global function load_font_bmf(filename: cstring, characters: cstring): uint32 <cimport,nodecl> end",
        "load_font_bmf_from_image": "global function load_font_bmf_from_image(image: uint32, characters: cstring): uint32 <cimport,nodecl> end",
        "measure_text": "global function measure_text(font: uint32, text: cstring, textLength: int32): *Dimensions <cimport,nodecl> end",
        "measure_image": "global function measure_image(image: uint32): *Dimensions <cimport,nodecl> end",
        "load_font_tty": "global function load_font_tty(filename: cstring, glyphWidth: int32, glyphHeight: int32, characters: cstring): uint32 <cimport,nodecl> end",
        "load_font_tty_from_image": "global function load_font_tty_from_image(image: uint32, glyphWidth: int32, glyphHeight: int32, characters: cstring): uint32 <cimport,nodecl> end",
        "load_font_ttf": "global function load_font_ttf(filename: cstring, fontSize: int32): uint32 <cimport,nodecl> end",
        "image_color_invert": "global function image_color_invert(image: uint32): void <cimport,nodecl> end",
        "image_alpha_border": "global function image_alpha_border(image: uint32, threshold: float32): *Rectangle <cimport,nodecl> end",
        "image_crop": "global function image_crop(image: uint32, x: int32, y: int32, width: int32, height: int32): void <cimport,nodecl> end",
        "image_alpha_crop": "global function image_alpha_crop(image: uint32, threshold: float32): void <cimport,nodecl> end",
        "image_color_brightness": "global function image_color_brightness(image: uint32, factor: float32): void <cimport,nodecl> end",
        "image_flip": "global function image_flip(image: uint32, horizontal: boolean, vertical: boolean): void <cimport,nodecl> end",
        "image_color_contrast": "global function image_color_contrast(image: uint32, contrast: float32): void <cimport,nodecl> end",
        "image_alpha_mask": "global function image_alpha_mask(image: uint32, alphaMask: uint32, posX: int32, posY: int32): void <cimport,nodecl> end",
        "image_rotate": "global function image_rotate(image: uint32, degrees: float32, filter: ImageFilter): uint32 <cimport,nodecl> end",
        "image_gradient": "global function image_gradient(width: int32, height: int32, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color): uint32 <cimport,nodecl> end",
        "unload_image": "global function unload_image(image: uint32): void <cimport,nodecl> end",
        "unload_font": "global function unload_font(font: uint32): void <cimport,nodecl> end",
        "clear_image": "global function clear_image(destination: uint32, color: Color): void <cimport,nodecl> end",
        "draw_point_on_image": "global function draw_point_on_image(destination: uint32, x: int32, y: int32, color: Color): void <cimport,nodecl> end",
        "draw_line_on_image": "global function draw_line_on_image(destination: uint32, startPosX: int32, startPosY: int32, endPosX: int32, endPosY: int32, color: Color): void <cimport,nodecl> end",
        "draw_rectangle_on_image": "global function draw_rectangle_on_image(destination: uint32, posX: int32, posY: int32, width: int32, height: int32, color: Color): void <cimport,nodecl> end",
        "draw_triangle_on_image": "global function draw_triangle_on_image(destination: uint32, x1: int32, y1: int32, x2: int32, y2: int32, x3: int32, y3: int32, color: Color): void <cimport,nodecl> end",
        "draw_ellipse_on_image": "global function draw_ellipse_on_image(destination: uint32, centerX: int32, centerY: int32, radiusX: int32, radiusY: int32, color: Color): void <cimport,nodecl> end",
        "draw_circle_on_image": "global function draw_circle_on_image(destination: uint32, centerX: int32, centerY: int32, radius: int32, color: Color): void <cimport,nodecl> end",
        "draw_polygon_on_image": "global function draw_polygon_on_image(destination: uint32, points: *Vector, numPoints: int32, color: Color): void <cimport,nodecl> end",
        "draw_rectangle_rounded_on_image": "global function draw_rectangle_rounded_on_image(destination: uint32, x: int32, y: int32, width: int32, height: int32, cornerRadius: int32, color: Color): void <cimport,nodecl> end",
        "draw_image_on_image": "global function draw_image_on_image(destination: uint32, src: uint32, posX: int32, posY: int32): void <cimport,nodecl> end",
        "draw_image_tint_on_image": "global function draw_image_tint_on_image(destination: uint32, src: uint32, posX: int32, posY: int32, tint: Color): void <cimport,nodecl> end",
        "draw_image_rotated_on_image": "global function draw_image_rotated_on_image(destination: uint32, src: uint32, posX: int32, posY: int32, degrees: float32, offsetX: float32, offsetY: float32, filter: ImageFilter): void <cimport,nodecl> end",
        "draw_image_flipped_on_image": "global function draw_image_flipped_on_image(destination: uint32, src: uint32, posX: int32, posY: int32, flipHorizontal: boolean, flipVertical: boolean, flipDiagonal: boolean): void <cimport,nodecl> end",
        "draw_image_scaled_on_image": "global function draw_image_scaled_on_image(destination: uint32, src: uint32, posX: int32, posY: int32, scaleX: float32, scaleY: float32, offsetX: float32, offsetY: float32, filter: ImageFilter): void <cimport,nodecl> end",
        "draw_text_on_image": "global function draw_text_on_image(destination: uint32, font: uint32, text: cstring, posX: int32, posY: int32, color: Color): void <cimport,nodecl> end",
        "draw_rectangle_outline": "global function draw_rectangle_outline(posX: int32, posY: int32, width: int32, height: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_triangle_outline": "global function draw_triangle_outline(x1: int32, y1: int32, x2: int32, y2: int32, x3: int32, y3: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_ellipse_outline": "global function draw_ellipse_outline(centerX: int32, centerY: int32, radiusX: int32, radiusY: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_circle_outline": "global function draw_circle_outline(centerX: int32, centerY: int32, radius: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_polygon_outline": "global function draw_polygon_outline(points: *Vector, numPoints: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_arc_outline": "global function draw_arc_outline(centerX: int32, centerY: int32, radius: float32, startAngle: float32, endAngle: float32, segments: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_rectangle_rounded_outline": "global function draw_rectangle_rounded_outline(x: int32, y: int32, width: int32, height: int32, cornerRadius: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_rectangle_outline_on_image": "global function draw_rectangle_outline_on_image(destination: uint32, posX: int32, posY: int32, width: int32, height: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_triangle_outline_on_image": "global function draw_triangle_outline_on_image(destination: uint32, x1: int32, y1: int32, x2: int32, y2: int32, x3: int32, y3: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_ellipse_outline_on_image": "global function draw_ellipse_outline_on_image(destination: uint32, centerX: int32, centerY: int32, radiusX: int32, radiusY: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_circle_outline_on_image": "global function draw_circle_outline_on_image(destination: uint32, centerX: int32, centerY: int32, radius: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_polygon_outline_on_image": "global function draw_polygon_outline_on_image(destination: uint32, points: *Vector, numPoints: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "draw_rectangle_rounded_outline_on_image": "global function draw_rectangle_rounded_outline_on_image(destination: uint32, x: int32, y: int32, width: int32, height: int32, cornerRadius: int32, thickness: int32, color: Color): void <cimport,nodecl> end",
        "gui_begin_window": "global function gui_begin_window(title: cstring, rect: Rectangle): boolean <cimport,nodecl> end",
        "gui_end_window": "global function gui_end_window(): void <cimport,nodecl> end",
        "gui_button": "global function gui_button(label: cstring): boolean <cimport,nodecl> end",
        "gui_label": "global function gui_label(text: cstring): void <cimport,nodecl> end",
        "gui_text": "global function gui_text(text: cstring): void <cimport,nodecl> end",
        "gui_checkbox": "global function gui_checkbox(label: cstring, state: boolean): boolean <cimport,nodecl> end",
        "gui_slider": "global function gui_slider(value: float32, low: float32, high: float32): float32 <cimport,nodecl> end",
        "gui_layout_row": "global function gui_layout_row(widths: *int32, numWidths: int32, height: int32): void <cimport,nodecl> end",
        "gui_end": "global function gui_end(): void <cimport,nodecl> end",
        "gui_draw": "global function gui_draw(dst: uint32): void <cimport,nodecl> end",
        "key_pressed": "global function key_pressed(key: Key): boolean <cimport,nodecl> end",
        "key_down": "global function key_down(key: Key): boolean <cimport,nodecl> end",
        "key_released": "global function key_released(key: Key): boolean <cimport,nodecl> end",
        "key_up": "global function key_up(key: Key): boolean <cimport,nodecl> end",
        "gamepad_button_pressed": "global function gamepad_button_pressed(gamepad: int32, button: GamepadButton): boolean <cimport,nodecl> end",
        "gamepad_button_down": "global function gamepad_button_down(gamepad: int32, button: GamepadButton): boolean <cimport,nodecl> end",
        "gamepad_button_released": "global function gamepad_button_released(gamepad: int32, button: GamepadButton): boolean <cimport,nodecl> end",
        "mouse_position": "global function mouse_position(): *Vector <cimport,nodecl> end",
        "mouse_button_pressed": "global function mouse_button_pressed(button: MouseButton): boolean <cimport,nodecl> end",
        "mouse_button_down": "global function mouse_button_down(button: MouseButton): boolean <cimport,nodecl> end",
        "mouse_button_released": "global function mouse_button_released(button: MouseButton): boolean <cimport,nodecl> end",
        "mouse_button_up": "global function mouse_button_up(button: MouseButton): boolean <cimport,nodecl> end",
        "load_sound": "global function load_sound(filename: cstring): uint32 <cimport,nodecl> end",
        "play_sound": "global function play_sound(sound: uint32, loop: boolean): void <cimport,nodecl> end",
        "stop_sound": "global function stop_sound(sound: uint32): void <cimport,nodecl> end",
        "unload_sound": "global function unload_sound(sound: uint32): void <cimport,nodecl> end",
        "tts_sound": "global function tts_sound(text: cstring, phonetic: boolean, pitch: int32, speed: int32, throat: int32, mouth: int32, sing: boolean): uint32 <cimport,nodecl> end",
        "sfx_sound": "global function sfx_sound(params: SfxParams): uint32 <cimport,nodecl> end",
        "sfx_generate": "global function sfx_generate(type: SfxPresetType): *SfxParams <cimport,nodecl> end",
        "load_tilemap": "global function load_tilemap(filename: cstring): uint32 <cimport,nodecl> end",
        "unload_tilemap": "global function unload_tilemap(tilemap: uint32): void <cimport,nodecl> end",
        "tile_update": "global function tile_update(tilemap: uint32, deltaTime: float32): void <cimport,nodecl> end",
        "tile_map_size": "global function tile_map_size(tilemap: uint32): *Dimensions <cimport,nodecl> end",
        "tile_tile_size": "global function tile_tile_size(tilemap: uint32): *Dimensions <cimport,nodecl> end",
        "tile_map_prop": "global function tile_map_prop(tilemap: uint32, name: cstring): *TilemapProp <cimport,nodecl> end",
        "tile_map_prop_count": "global function tile_map_prop_count(tilemap: uint32): int32 <cimport,nodecl> end",
        "tile_map_prop_at": "global function tile_map_prop_at(tilemap: uint32, index: int32): *TilemapProp <cimport,nodecl> end",
        "tile_draw": "global function tile_draw(tilemap: uint32, posX: int32, posY: int32): void <cimport,nodecl> end",
        "tile_draw_tint": "global function tile_draw_tint(tilemap: uint32, posX: int32, posY: int32, tint: Color): void <cimport,nodecl> end",
        "tile_draw_on_image": "global function tile_draw_on_image(dst: uint32, tilemap: uint32, posX: int32, posY: int32): void <cimport,nodecl> end",
        "tilemap_image": "global function tilemap_image(tilemap: uint32): uint32 <cimport,nodecl> end",
        "tile_layer_count": "global function tile_layer_count(tilemap: uint32): int32 <cimport,nodecl> end",
        "tile_layer_index": "global function tile_layer_index(tilemap: uint32, name: cstring): int32 <cimport,nodecl> end",
        "tile_layer_name": "global function tile_layer_name(tilemap: uint32, layer: int32): cstring <cimport,nodecl> end",
        "tile_layer_type": "global function tile_layer_type(tilemap: uint32, layer: int32): TileLayerKind <cimport,nodecl> end",
        "tile_layer_size": "global function tile_layer_size(tilemap: uint32, layer: int32): *Dimensions <cimport,nodecl> end",
        "tile_layer_visible": "global function tile_layer_visible(tilemap: uint32, layer: int32): boolean <cimport,nodecl> end",
        "tile_layer_prop": "global function tile_layer_prop(tilemap: uint32, layer: int32, name: cstring): *TilemapProp <cimport,nodecl> end",
        "tile_layer_prop_count": "global function tile_layer_prop_count(tilemap: uint32, layer: int32): int32 <cimport,nodecl> end",
        "tile_layer_prop_at": "global function tile_layer_prop_at(tilemap: uint32, layer: int32, index: int32): *TilemapProp <cimport,nodecl> end",
        "tile_draw_layer": "global function tile_draw_layer(tilemap: uint32, layer: int32, posX: int32, posY: int32): void <cimport,nodecl> end",
        "tile_draw_layer_tint": "global function tile_draw_layer_tint(tilemap: uint32, layer: int32, posX: int32, posY: int32, tint: Color): void <cimport,nodecl> end",
        "tile_draw_layer_on_image": "global function tile_draw_layer_on_image(dst: uint32, tilemap: uint32, layer: int32, posX: int32, posY: int32): void <cimport,nodecl> end",
        "tile_layer_image": "global function tile_layer_image(tilemap: uint32, layer: int32): uint32 <cimport,nodecl> end",
        "tile_get_tile": "global function tile_get_tile(tilemap: uint32, layer: int32, column: int32, row: int32): int32 <cimport,nodecl> end",
        "tile_set_tile": "global function tile_set_tile(tilemap: uint32, layer: int32, column: int32, row: int32, gid: int32): void <cimport,nodecl> end",
        "tile_draw_tile": "global function tile_draw_tile(tilemap: uint32, gid: int32, posX: int32, posY: int32): void <cimport,nodecl> end",
        "tile_image": "global function tile_image(tilemap: uint32, gid: int32): uint32 <cimport,nodecl> end",
        "tile_gid_prop": "global function tile_gid_prop(tilemap: uint32, gid: int32, name: cstring): *TilemapProp <cimport,nodecl> end",
        "tile_gid_prop_count": "global function tile_gid_prop_count(tilemap: uint32, gid: int32): int32 <cimport,nodecl> end",
        "tile_gid_prop_at": "global function tile_gid_prop_at(tilemap: uint32, gid: int32, index: int32): *TilemapProp <cimport,nodecl> end",
        "tile_object_count": "global function tile_object_count(tilemap: uint32, layer: int32): int32 <cimport,nodecl> end",
        "tile_object": "global function tile_object(tilemap: uint32, layer: int32, index: int32): *TilemapObject <cimport,nodecl> end",
        "tile_object_index": "global function tile_object_index(tilemap: uint32, layer: int32, name: cstring): int32 <cimport,nodecl> end",
        "tile_object_prop": "global function tile_object_prop(tilemap: uint32, layer: int32, index: int32, name: cstring): *TilemapProp <cimport,nodecl> end",
        "tile_object_prop_count": "global function tile_object_prop_count(tilemap: uint32, layer: int32, index: int32): int32 <cimport,nodecl> end",
        "tile_object_prop_at": "global function tile_object_prop_at(tilemap: uint32, layer: int32, index: int32, propIndex: int32): *TilemapProp <cimport,nodecl> end",
        "current_time": "global function current_time(): uint64 <cimport,nodecl> end",
        "delta_time": "global function delta_time(): float32 <cimport,nodecl> end",
        "random_int": "global function random_int(min: int32, max: int32): int32 <cimport,nodecl> end",
        "random_seed_get": "global function random_seed_get(): uint64 <cimport,nodecl> end",
        "random_seed_set": "global function random_seed_set(seed: uint64): void <cimport,nodecl> end"
      }
    },
    "as": {
      "id": "as",
      "binding": "carts/as/null0.ts",
      "example": "carts/as/simple",
      "title": "AssemblyScript",
      "image": "assemblyscript",
      "kind": "compiled",
      "file": "main.ts",
      "highlight": "typescript",
      "callback": "export function load(): void {}",
      "toolchain": "asc",
      "notes": [
        "Import what you use: `import { clear, draw_circle, BLUE } from 'null0.ts'` - that exact specifier, not a relative path.",
        "Functions taking text take a plain `string`; the pointer conversion is done for you (the raw `*_ptr` imports are exported too, if you want them).",
        "Built with `--runtime stub`, so there is no GC - treat allocations as permanent."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-assemblyscript:latest",
      "decls": {
        "color_tint": "export declare function color_tint(color: Color, tint: Color): Color;",
        "color_fade": "export declare function color_fade(color: Color, alpha: f32): Color;",
        "color_brightness": "export declare function color_brightness(color: Color, factor: f32): Color;",
        "color_invert": "export declare function color_invert(color: Color): Color;",
        "color_alpha_blend": "export declare function color_alpha_blend(dst: Color, src: Color): Color;",
        "color_contrast": "export declare function color_contrast(color: Color, contrast: f32): Color;",
        "color_bilinear_interpolate": "export declare function color_bilinear_interpolate(color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: f32, coordinateY: f32): Color;",
        "new_image": "export declare function new_image(width: i32, height: i32, color: Color): u32;",
        "image_copy": "export declare function image_copy(image: u32): u32;",
        "image_subimage": "export declare function image_subimage(image: u32, x: i32, y: i32, width: i32, height: i32): u32;",
        "clear": "export declare function clear(color: Color): void;",
        "draw_point": "export declare function draw_point(x: i32, y: i32, color: Color): void;",
        "draw_line": "export declare function draw_line(startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color): void;",
        "draw_rectangle": "export declare function draw_rectangle(posX: i32, posY: i32, width: i32, height: i32, color: Color): void;",
        "draw_triangle": "export declare function draw_triangle(x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color): void;",
        "draw_ellipse": "export declare function draw_ellipse(centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color): void;",
        "draw_circle": "export declare function draw_circle(centerX: i32, centerY: i32, radius: i32, color: Color): void;",
        "draw_polygon": "export declare function draw_polygon(points: usize, numPoints: i32, color: Color): void;",
        "draw_arc": "export declare function draw_arc(centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, color: Color): void;",
        "draw_rectangle_rounded": "export declare function draw_rectangle_rounded(x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color): void;",
        "draw_image": "export declare function draw_image(src: u32, posX: i32, posY: i32): void;",
        "draw_image_tint": "export declare function draw_image_tint(src: u32, posX: i32, posY: i32, tint: Color): void;",
        "draw_image_rotated": "export declare function draw_image_rotated(src: u32, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: ImageFilter): void;",
        "draw_image_flipped": "export declare function draw_image_flipped(src: u32, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool): void;",
        "draw_image_scaled": "export declare function draw_image_scaled(src: u32, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: ImageFilter): void;",
        "draw_text": "export declare function draw_text_ptr(font: u32, text: usize, posX: i32, posY: i32, color: Color): void;",
        "save_image": "export declare function save_image_ptr(image: u32, filename: usize): void;",
        "load_image": "export declare function load_image_ptr(filename: usize): u32;",
        "image_resize": "export declare function image_resize(image: u32, newWidth: i32, newHeight: i32, filter: ImageFilter): u32;",
        "image_scale": "export declare function image_scale(image: u32, scaleX: f32, scaleY: f32, filter: ImageFilter): u32;",
        "image_color_replace": "export declare function image_color_replace(image: u32, color: Color, replace: Color): void;",
        "image_color_tint": "export declare function image_color_tint(image: u32, color: Color): void;",
        "image_color_fade": "export declare function image_color_fade(image: u32, alpha: f32): void;",
        "font_copy": "export declare function font_copy(font: u32): u32;",
        "font_scale": "export declare function font_scale(font: u32, scaleX: f32, scaleY: f32, filter: ImageFilter): u32;",
        "load_font_bmf": "export declare function load_font_bmf_ptr(filename: usize, characters: usize): u32;",
        "load_font_bmf_from_image": "export declare function load_font_bmf_from_image_ptr(image: u32, characters: usize): u32;",
        "measure_text": "export declare function measure_text_ptr(font: u32, text: usize, textLength: i32): Dimensions;",
        "measure_image": "export declare function measure_image(image: u32): Dimensions;",
        "load_font_tty": "export declare function load_font_tty_ptr(filename: usize, glyphWidth: i32, glyphHeight: i32, characters: usize): u32;",
        "load_font_tty_from_image": "export declare function load_font_tty_from_image_ptr(image: u32, glyphWidth: i32, glyphHeight: i32, characters: usize): u32;",
        "load_font_ttf": "export declare function load_font_ttf_ptr(filename: usize, fontSize: i32): u32;",
        "image_color_invert": "export declare function image_color_invert(image: u32): void;",
        "image_alpha_border": "export declare function image_alpha_border(image: u32, threshold: f32): Rectangle;",
        "image_crop": "export declare function image_crop(image: u32, x: i32, y: i32, width: i32, height: i32): void;",
        "image_alpha_crop": "export declare function image_alpha_crop(image: u32, threshold: f32): void;",
        "image_color_brightness": "export declare function image_color_brightness(image: u32, factor: f32): void;",
        "image_flip": "export declare function image_flip(image: u32, horizontal: bool, vertical: bool): void;",
        "image_color_contrast": "export declare function image_color_contrast(image: u32, contrast: f32): void;",
        "image_alpha_mask": "export declare function image_alpha_mask(image: u32, alphaMask: u32, posX: i32, posY: i32): void;",
        "image_rotate": "export declare function image_rotate(image: u32, degrees: f32, filter: ImageFilter): u32;",
        "image_gradient": "export declare function image_gradient(width: i32, height: i32, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color): u32;",
        "unload_image": "export declare function unload_image(image: u32): void;",
        "unload_font": "export declare function unload_font(font: u32): void;",
        "clear_image": "export declare function clear_image(destination: u32, color: Color): void;",
        "draw_point_on_image": "export declare function draw_point_on_image(destination: u32, x: i32, y: i32, color: Color): void;",
        "draw_line_on_image": "export declare function draw_line_on_image(destination: u32, startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color): void;",
        "draw_rectangle_on_image": "export declare function draw_rectangle_on_image(destination: u32, posX: i32, posY: i32, width: i32, height: i32, color: Color): void;",
        "draw_triangle_on_image": "export declare function draw_triangle_on_image(destination: u32, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color): void;",
        "draw_ellipse_on_image": "export declare function draw_ellipse_on_image(destination: u32, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color): void;",
        "draw_circle_on_image": "export declare function draw_circle_on_image(destination: u32, centerX: i32, centerY: i32, radius: i32, color: Color): void;",
        "draw_polygon_on_image": "export declare function draw_polygon_on_image(destination: u32, points: usize, numPoints: i32, color: Color): void;",
        "draw_rectangle_rounded_on_image": "export declare function draw_rectangle_rounded_on_image(destination: u32, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color): void;",
        "draw_image_on_image": "export declare function draw_image_on_image(destination: u32, src: u32, posX: i32, posY: i32): void;",
        "draw_image_tint_on_image": "export declare function draw_image_tint_on_image(destination: u32, src: u32, posX: i32, posY: i32, tint: Color): void;",
        "draw_image_rotated_on_image": "export declare function draw_image_rotated_on_image(destination: u32, src: u32, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: ImageFilter): void;",
        "draw_image_flipped_on_image": "export declare function draw_image_flipped_on_image(destination: u32, src: u32, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool): void;",
        "draw_image_scaled_on_image": "export declare function draw_image_scaled_on_image(destination: u32, src: u32, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: ImageFilter): void;",
        "draw_text_on_image": "export declare function draw_text_on_image_ptr(destination: u32, font: u32, text: usize, posX: i32, posY: i32, color: Color): void;",
        "draw_rectangle_outline": "export declare function draw_rectangle_outline(posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color): void;",
        "draw_triangle_outline": "export declare function draw_triangle_outline(x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color): void;",
        "draw_ellipse_outline": "export declare function draw_ellipse_outline(centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color): void;",
        "draw_circle_outline": "export declare function draw_circle_outline(centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color): void;",
        "draw_polygon_outline": "export declare function draw_polygon_outline(points: usize, numPoints: i32, thickness: i32, color: Color): void;",
        "draw_arc_outline": "export declare function draw_arc_outline(centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, thickness: i32, color: Color): void;",
        "draw_rectangle_rounded_outline": "export declare function draw_rectangle_rounded_outline(x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color): void;",
        "draw_rectangle_outline_on_image": "export declare function draw_rectangle_outline_on_image(destination: u32, posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color): void;",
        "draw_triangle_outline_on_image": "export declare function draw_triangle_outline_on_image(destination: u32, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color): void;",
        "draw_ellipse_outline_on_image": "export declare function draw_ellipse_outline_on_image(destination: u32, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color): void;",
        "draw_circle_outline_on_image": "export declare function draw_circle_outline_on_image(destination: u32, centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color): void;",
        "draw_polygon_outline_on_image": "export declare function draw_polygon_outline_on_image(destination: u32, points: usize, numPoints: i32, thickness: i32, color: Color): void;",
        "draw_rectangle_rounded_outline_on_image": "export declare function draw_rectangle_rounded_outline_on_image(destination: u32, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color): void;",
        "gui_begin_window": "export declare function gui_begin_window_ptr(title: usize, rect: Rectangle): bool;",
        "gui_end_window": "export declare function gui_end_window(): void;",
        "gui_button": "export declare function gui_button_ptr(label: usize): bool;",
        "gui_label": "export declare function gui_label_ptr(text: usize): void;",
        "gui_text": "export declare function gui_text_ptr(text: usize): void;",
        "gui_checkbox": "export declare function gui_checkbox_ptr(label: usize, state: bool): bool;",
        "gui_slider": "export declare function gui_slider(value: f32, low: f32, high: f32): f32;",
        "gui_layout_row": "export declare function gui_layout_row(widths: usize, numWidths: i32, height: i32): void;",
        "gui_end": "export declare function gui_end(): void;",
        "gui_draw": "export declare function gui_draw(dst: u32): void;",
        "key_pressed": "export declare function key_pressed(key: Key): bool;",
        "key_down": "export declare function key_down(key: Key): bool;",
        "key_released": "export declare function key_released(key: Key): bool;",
        "key_up": "export declare function key_up(key: Key): bool;",
        "gamepad_button_pressed": "export declare function gamepad_button_pressed(gamepad: i32, button: GamepadButton): bool;",
        "gamepad_button_down": "export declare function gamepad_button_down(gamepad: i32, button: GamepadButton): bool;",
        "gamepad_button_released": "export declare function gamepad_button_released(gamepad: i32, button: GamepadButton): bool;",
        "mouse_position": "export declare function mouse_position(): Vector;",
        "mouse_button_pressed": "export declare function mouse_button_pressed(button: MouseButton): bool;",
        "mouse_button_down": "export declare function mouse_button_down(button: MouseButton): bool;",
        "mouse_button_released": "export declare function mouse_button_released(button: MouseButton): bool;",
        "mouse_button_up": "export declare function mouse_button_up(button: MouseButton): bool;",
        "load_sound": "export declare function load_sound_ptr(filename: usize): u32;",
        "play_sound": "export declare function play_sound(sound: u32, loop: bool): void;",
        "stop_sound": "export declare function stop_sound(sound: u32): void;",
        "unload_sound": "export declare function unload_sound(sound: u32): void;",
        "tts_sound": "export declare function tts_sound_ptr(text: usize, phonetic: bool, pitch: i32, speed: i32, throat: i32, mouth: i32, sing: bool): u32;",
        "sfx_sound": "export declare function sfx_sound(params: SfxParams): u32;",
        "sfx_generate": "export declare function sfx_generate(type: SfxPresetType): SfxParams;",
        "load_tilemap": "export declare function load_tilemap_ptr(filename: usize): u32;",
        "unload_tilemap": "export declare function unload_tilemap(tilemap: u32): void;",
        "tile_update": "export declare function tile_update(tilemap: u32, deltaTime: f32): void;",
        "tile_map_size": "export declare function tile_map_size(tilemap: u32): Dimensions;",
        "tile_tile_size": "export declare function tile_tile_size(tilemap: u32): Dimensions;",
        "tile_map_prop": "export declare function tile_map_prop_ptr(tilemap: u32, name: usize): TilemapProp;",
        "tile_map_prop_count": "export declare function tile_map_prop_count(tilemap: u32): i32;",
        "tile_map_prop_at": "export declare function tile_map_prop_at(tilemap: u32, index: i32): TilemapProp;",
        "tile_draw": "export declare function tile_draw(tilemap: u32, posX: i32, posY: i32): void;",
        "tile_draw_tint": "export declare function tile_draw_tint(tilemap: u32, posX: i32, posY: i32, tint: Color): void;",
        "tile_draw_on_image": "export declare function tile_draw_on_image(dst: u32, tilemap: u32, posX: i32, posY: i32): void;",
        "tilemap_image": "export declare function tilemap_image(tilemap: u32): u32;",
        "tile_layer_count": "export declare function tile_layer_count(tilemap: u32): i32;",
        "tile_layer_index": "export declare function tile_layer_index_ptr(tilemap: u32, name: usize): i32;",
        "tile_layer_name": "export declare function tile_layer_name_ptr(tilemap: u32, layer: i32): usize;",
        "tile_layer_type": "export declare function tile_layer_type(tilemap: u32, layer: i32): TileLayerKind;",
        "tile_layer_size": "export declare function tile_layer_size(tilemap: u32, layer: i32): Dimensions;",
        "tile_layer_visible": "export declare function tile_layer_visible(tilemap: u32, layer: i32): bool;",
        "tile_layer_prop": "export declare function tile_layer_prop_ptr(tilemap: u32, layer: i32, name: usize): TilemapProp;",
        "tile_layer_prop_count": "export declare function tile_layer_prop_count(tilemap: u32, layer: i32): i32;",
        "tile_layer_prop_at": "export declare function tile_layer_prop_at(tilemap: u32, layer: i32, index: i32): TilemapProp;",
        "tile_draw_layer": "export declare function tile_draw_layer(tilemap: u32, layer: i32, posX: i32, posY: i32): void;",
        "tile_draw_layer_tint": "export declare function tile_draw_layer_tint(tilemap: u32, layer: i32, posX: i32, posY: i32, tint: Color): void;",
        "tile_draw_layer_on_image": "export declare function tile_draw_layer_on_image(dst: u32, tilemap: u32, layer: i32, posX: i32, posY: i32): void;",
        "tile_layer_image": "export declare function tile_layer_image(tilemap: u32, layer: i32): u32;",
        "tile_get_tile": "export declare function tile_get_tile(tilemap: u32, layer: i32, column: i32, row: i32): i32;",
        "tile_set_tile": "export declare function tile_set_tile(tilemap: u32, layer: i32, column: i32, row: i32, gid: i32): void;",
        "tile_draw_tile": "export declare function tile_draw_tile(tilemap: u32, gid: i32, posX: i32, posY: i32): void;",
        "tile_image": "export declare function tile_image(tilemap: u32, gid: i32): u32;",
        "tile_gid_prop": "export declare function tile_gid_prop_ptr(tilemap: u32, gid: i32, name: usize): TilemapProp;",
        "tile_gid_prop_count": "export declare function tile_gid_prop_count(tilemap: u32, gid: i32): i32;",
        "tile_gid_prop_at": "export declare function tile_gid_prop_at(tilemap: u32, gid: i32, index: i32): TilemapProp;",
        "tile_object_count": "export declare function tile_object_count(tilemap: u32, layer: i32): i32;",
        "tile_object": "export declare function tile_object(tilemap: u32, layer: i32, index: i32): TilemapObject;",
        "tile_object_index": "export declare function tile_object_index_ptr(tilemap: u32, layer: i32, name: usize): i32;",
        "tile_object_prop": "export declare function tile_object_prop_ptr(tilemap: u32, layer: i32, index: i32, name: usize): TilemapProp;",
        "tile_object_prop_count": "export declare function tile_object_prop_count(tilemap: u32, layer: i32, index: i32): i32;",
        "tile_object_prop_at": "export declare function tile_object_prop_at(tilemap: u32, layer: i32, index: i32, propIndex: i32): TilemapProp;",
        "current_time": "export declare function current_time(): u64;",
        "delta_time": "export declare function delta_time(): f32;",
        "random_int": "export declare function random_int(min: i32, max: i32): i32;",
        "random_seed_get": "export declare function random_seed_get(): u64;",
        "random_seed_set": "export declare function random_seed_set(seed: u64): void;"
      }
    },
    "odin": {
      "id": "odin",
      "binding": "carts/odin/null0/null0.odin",
      "example": "carts/odin/simple",
      "title": "Odin",
      "image": "odin",
      "kind": "compiled",
      "file": "main.odin",
      "highlight": "odin",
      "callback": "@(export) load :: proc \"c\" () {}",
      "toolchain": "odin, freestanding wasm32",
      "notes": [
        "`import null0 \"null0\"`."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-odin:latest",
      "decls": {
        "color_tint": "color_tint :: proc(color: Color, tint: Color) -> ^Color ---",
        "color_fade": "color_fade :: proc(color: Color, alpha: f32) -> ^Color ---",
        "color_brightness": "color_brightness :: proc(color: Color, factor: f32) -> ^Color ---",
        "color_invert": "color_invert :: proc(color: Color) -> ^Color ---",
        "color_alpha_blend": "color_alpha_blend :: proc(dst: Color, src: Color) -> ^Color ---",
        "color_contrast": "color_contrast :: proc(color: Color, contrast: f32) -> ^Color ---",
        "color_bilinear_interpolate": "color_bilinear_interpolate :: proc(color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: f32, coordinateY: f32) -> ^Color ---",
        "new_image": "new_image :: proc(width: i32, height: i32, color: Color) -> Image ---",
        "image_copy": "image_copy :: proc(image: Image) -> Image ---",
        "image_subimage": "image_subimage :: proc(image: Image, x: i32, y: i32, width: i32, height: i32) -> Image ---",
        "clear": "clear :: proc(color: Color) ---",
        "draw_point": "draw_point :: proc(x: i32, y: i32, color: Color) ---",
        "draw_line": "draw_line :: proc(startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color) ---",
        "draw_rectangle": "draw_rectangle :: proc(posX: i32, posY: i32, width: i32, height: i32, color: Color) ---",
        "draw_triangle": "draw_triangle :: proc(x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color) ---",
        "draw_ellipse": "draw_ellipse :: proc(centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color) ---",
        "draw_circle": "draw_circle :: proc(centerX: i32, centerY: i32, radius: i32, color: Color) ---",
        "draw_polygon": "draw_polygon :: proc(points: [^]Vector, numPoints: i32, color: Color) ---",
        "draw_arc": "draw_arc :: proc(centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, color: Color) ---",
        "draw_rectangle_rounded": "draw_rectangle_rounded :: proc(x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color) ---",
        "draw_image": "draw_image :: proc(src: Image, posX: i32, posY: i32) ---",
        "draw_image_tint": "draw_image_tint :: proc(src: Image, posX: i32, posY: i32, tint: Color) ---",
        "draw_image_rotated": "draw_image_rotated :: proc(src: Image, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: ImageFilter) ---",
        "draw_image_flipped": "draw_image_flipped :: proc(src: Image, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) ---",
        "draw_image_scaled": "draw_image_scaled :: proc(src: Image, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: ImageFilter) ---",
        "draw_text": "draw_text :: proc(font: Font, text: cstring, posX: i32, posY: i32, color: Color) ---",
        "save_image": "save_image :: proc(image: Image, filename: cstring) ---",
        "load_image": "load_image :: proc(filename: cstring) -> Image ---",
        "image_resize": "image_resize :: proc(image: Image, newWidth: i32, newHeight: i32, filter: ImageFilter) -> Image ---",
        "image_scale": "image_scale :: proc(image: Image, scaleX: f32, scaleY: f32, filter: ImageFilter) -> Image ---",
        "image_color_replace": "image_color_replace :: proc(image: Image, color: Color, replace: Color) ---",
        "image_color_tint": "image_color_tint :: proc(image: Image, color: Color) ---",
        "image_color_fade": "image_color_fade :: proc(image: Image, alpha: f32) ---",
        "font_copy": "font_copy :: proc(font: Font) -> Font ---",
        "font_scale": "font_scale :: proc(font: Font, scaleX: f32, scaleY: f32, filter: ImageFilter) -> Font ---",
        "load_font_bmf": "load_font_bmf :: proc(filename: cstring, characters: cstring) -> Font ---",
        "load_font_bmf_from_image": "load_font_bmf_from_image :: proc(image: Image, characters: cstring) -> Font ---",
        "measure_text": "measure_text :: proc(font: Font, text: cstring, textLength: i32) -> ^Dimensions ---",
        "measure_image": "measure_image :: proc(image: Image) -> ^Dimensions ---",
        "load_font_tty": "load_font_tty :: proc(filename: cstring, glyphWidth: i32, glyphHeight: i32, characters: cstring) -> Font ---",
        "load_font_tty_from_image": "load_font_tty_from_image :: proc(image: Image, glyphWidth: i32, glyphHeight: i32, characters: cstring) -> Font ---",
        "load_font_ttf": "load_font_ttf :: proc(filename: cstring, fontSize: i32) -> Font ---",
        "image_color_invert": "image_color_invert :: proc(image: Image) ---",
        "image_alpha_border": "image_alpha_border :: proc(image: Image, threshold: f32) -> ^Rectangle ---",
        "image_crop": "image_crop :: proc(image: Image, x: i32, y: i32, width: i32, height: i32) ---",
        "image_alpha_crop": "image_alpha_crop :: proc(image: Image, threshold: f32) ---",
        "image_color_brightness": "image_color_brightness :: proc(image: Image, factor: f32) ---",
        "image_flip": "image_flip :: proc(image: Image, horizontal: bool, vertical: bool) ---",
        "image_color_contrast": "image_color_contrast :: proc(image: Image, contrast: f32) ---",
        "image_alpha_mask": "image_alpha_mask :: proc(image: Image, alphaMask: Image, posX: i32, posY: i32) ---",
        "image_rotate": "image_rotate :: proc(image: Image, degrees: f32, filter: ImageFilter) -> Image ---",
        "image_gradient": "image_gradient :: proc(width: i32, height: i32, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color) -> Image ---",
        "unload_image": "unload_image :: proc(image: Image) ---",
        "unload_font": "unload_font :: proc(font: Font) ---",
        "clear_image": "clear_image :: proc(destination: Image, color: Color) ---",
        "draw_point_on_image": "draw_point_on_image :: proc(destination: Image, x: i32, y: i32, color: Color) ---",
        "draw_line_on_image": "draw_line_on_image :: proc(destination: Image, startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color) ---",
        "draw_rectangle_on_image": "draw_rectangle_on_image :: proc(destination: Image, posX: i32, posY: i32, width: i32, height: i32, color: Color) ---",
        "draw_triangle_on_image": "draw_triangle_on_image :: proc(destination: Image, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color) ---",
        "draw_ellipse_on_image": "draw_ellipse_on_image :: proc(destination: Image, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color) ---",
        "draw_circle_on_image": "draw_circle_on_image :: proc(destination: Image, centerX: i32, centerY: i32, radius: i32, color: Color) ---",
        "draw_polygon_on_image": "draw_polygon_on_image :: proc(destination: Image, points: [^]Vector, numPoints: i32, color: Color) ---",
        "draw_rectangle_rounded_on_image": "draw_rectangle_rounded_on_image :: proc(destination: Image, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color) ---",
        "draw_image_on_image": "draw_image_on_image :: proc(destination: Image, src: Image, posX: i32, posY: i32) ---",
        "draw_image_tint_on_image": "draw_image_tint_on_image :: proc(destination: Image, src: Image, posX: i32, posY: i32, tint: Color) ---",
        "draw_image_rotated_on_image": "draw_image_rotated_on_image :: proc(destination: Image, src: Image, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: ImageFilter) ---",
        "draw_image_flipped_on_image": "draw_image_flipped_on_image :: proc(destination: Image, src: Image, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) ---",
        "draw_image_scaled_on_image": "draw_image_scaled_on_image :: proc(destination: Image, src: Image, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: ImageFilter) ---",
        "draw_text_on_image": "draw_text_on_image :: proc(destination: Image, font: Font, text: cstring, posX: i32, posY: i32, color: Color) ---",
        "draw_rectangle_outline": "draw_rectangle_outline :: proc(posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color) ---",
        "draw_triangle_outline": "draw_triangle_outline :: proc(x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color) ---",
        "draw_ellipse_outline": "draw_ellipse_outline :: proc(centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color) ---",
        "draw_circle_outline": "draw_circle_outline :: proc(centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color) ---",
        "draw_polygon_outline": "draw_polygon_outline :: proc(points: [^]Vector, numPoints: i32, thickness: i32, color: Color) ---",
        "draw_arc_outline": "draw_arc_outline :: proc(centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, thickness: i32, color: Color) ---",
        "draw_rectangle_rounded_outline": "draw_rectangle_rounded_outline :: proc(x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color) ---",
        "draw_rectangle_outline_on_image": "draw_rectangle_outline_on_image :: proc(destination: Image, posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color) ---",
        "draw_triangle_outline_on_image": "draw_triangle_outline_on_image :: proc(destination: Image, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color) ---",
        "draw_ellipse_outline_on_image": "draw_ellipse_outline_on_image :: proc(destination: Image, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color) ---",
        "draw_circle_outline_on_image": "draw_circle_outline_on_image :: proc(destination: Image, centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color) ---",
        "draw_polygon_outline_on_image": "draw_polygon_outline_on_image :: proc(destination: Image, points: [^]Vector, numPoints: i32, thickness: i32, color: Color) ---",
        "draw_rectangle_rounded_outline_on_image": "draw_rectangle_rounded_outline_on_image :: proc(destination: Image, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color) ---",
        "gui_begin_window": "gui_begin_window :: proc(title: cstring, rect: Rectangle) -> bool ---",
        "gui_end_window": "gui_end_window :: proc() ---",
        "gui_button": "gui_button :: proc(label: cstring) -> bool ---",
        "gui_label": "gui_label :: proc(text: cstring) ---",
        "gui_text": "gui_text :: proc(text: cstring) ---",
        "gui_checkbox": "gui_checkbox :: proc(label: cstring, state: bool) -> bool ---",
        "gui_slider": "gui_slider :: proc(value: f32, low: f32, high: f32) -> f32 ---",
        "gui_layout_row": "gui_layout_row :: proc(widths: [^]i32, numWidths: i32, height: i32) ---",
        "gui_end": "gui_end :: proc() ---",
        "gui_draw": "gui_draw :: proc(dst: Image) ---",
        "key_pressed": "key_pressed :: proc(key: Key) -> bool ---",
        "key_down": "key_down :: proc(key: Key) -> bool ---",
        "key_released": "key_released :: proc(key: Key) -> bool ---",
        "key_up": "key_up :: proc(key: Key) -> bool ---",
        "gamepad_button_pressed": "gamepad_button_pressed :: proc(gamepad: i32, button: GamepadButton) -> bool ---",
        "gamepad_button_down": "gamepad_button_down :: proc(gamepad: i32, button: GamepadButton) -> bool ---",
        "gamepad_button_released": "gamepad_button_released :: proc(gamepad: i32, button: GamepadButton) -> bool ---",
        "mouse_position": "mouse_position :: proc() -> ^Vector ---",
        "mouse_button_pressed": "mouse_button_pressed :: proc(button: MouseButton) -> bool ---",
        "mouse_button_down": "mouse_button_down :: proc(button: MouseButton) -> bool ---",
        "mouse_button_released": "mouse_button_released :: proc(button: MouseButton) -> bool ---",
        "mouse_button_up": "mouse_button_up :: proc(button: MouseButton) -> bool ---",
        "load_sound": "load_sound :: proc(filename: cstring) -> Sound ---",
        "play_sound": "play_sound :: proc(sound: Sound, loop: bool) ---",
        "stop_sound": "stop_sound :: proc(sound: Sound) ---",
        "unload_sound": "unload_sound :: proc(sound: Sound) ---",
        "tts_sound": "tts_sound :: proc(text: cstring, phonetic: bool, pitch: i32, speed: i32, throat: i32, mouth: i32, sing: bool) -> Sound ---",
        "sfx_sound": "sfx_sound :: proc(params: ^SfxParams) -> Sound ---",
        "sfx_generate": "sfx_generate :: proc(type: SfxPresetType) -> ^SfxParams ---",
        "load_tilemap": "load_tilemap :: proc(filename: cstring) -> Tilemap ---",
        "unload_tilemap": "unload_tilemap :: proc(tilemap: Tilemap) ---",
        "tile_update": "tile_update :: proc(tilemap: Tilemap, deltaTime: f32) ---",
        "tile_map_size": "tile_map_size :: proc(tilemap: Tilemap) -> ^Dimensions ---",
        "tile_tile_size": "tile_tile_size :: proc(tilemap: Tilemap) -> ^Dimensions ---",
        "tile_map_prop": "tile_map_prop :: proc(tilemap: Tilemap, name: cstring) -> ^TilemapProp ---",
        "tile_map_prop_count": "tile_map_prop_count :: proc(tilemap: Tilemap) -> i32 ---",
        "tile_map_prop_at": "tile_map_prop_at :: proc(tilemap: Tilemap, index: i32) -> ^TilemapProp ---",
        "tile_draw": "tile_draw :: proc(tilemap: Tilemap, posX: i32, posY: i32) ---",
        "tile_draw_tint": "tile_draw_tint :: proc(tilemap: Tilemap, posX: i32, posY: i32, tint: Color) ---",
        "tile_draw_on_image": "tile_draw_on_image :: proc(dst: Image, tilemap: Tilemap, posX: i32, posY: i32) ---",
        "tilemap_image": "tilemap_image :: proc(tilemap: Tilemap) -> Image ---",
        "tile_layer_count": "tile_layer_count :: proc(tilemap: Tilemap) -> i32 ---",
        "tile_layer_index": "tile_layer_index :: proc(tilemap: Tilemap, name: cstring) -> i32 ---",
        "tile_layer_name": "tile_layer_name :: proc(tilemap: Tilemap, layer: i32) -> cstring ---",
        "tile_layer_type": "tile_layer_type :: proc(tilemap: Tilemap, layer: i32) ---",
        "tile_layer_size": "tile_layer_size :: proc(tilemap: Tilemap, layer: i32) -> ^Dimensions ---",
        "tile_layer_visible": "tile_layer_visible :: proc(tilemap: Tilemap, layer: i32) -> bool ---",
        "tile_layer_prop": "tile_layer_prop :: proc(tilemap: Tilemap, layer: i32, name: cstring) -> ^TilemapProp ---",
        "tile_layer_prop_count": "tile_layer_prop_count :: proc(tilemap: Tilemap, layer: i32) -> i32 ---",
        "tile_layer_prop_at": "tile_layer_prop_at :: proc(tilemap: Tilemap, layer: i32, index: i32) -> ^TilemapProp ---",
        "tile_draw_layer": "tile_draw_layer :: proc(tilemap: Tilemap, layer: i32, posX: i32, posY: i32) ---",
        "tile_draw_layer_tint": "tile_draw_layer_tint :: proc(tilemap: Tilemap, layer: i32, posX: i32, posY: i32, tint: Color) ---",
        "tile_draw_layer_on_image": "tile_draw_layer_on_image :: proc(dst: Image, tilemap: Tilemap, layer: i32, posX: i32, posY: i32) ---",
        "tile_layer_image": "tile_layer_image :: proc(tilemap: Tilemap, layer: i32) -> Image ---",
        "tile_get_tile": "tile_get_tile :: proc(tilemap: Tilemap, layer: i32, column: i32, row: i32) -> i32 ---",
        "tile_set_tile": "tile_set_tile :: proc(tilemap: Tilemap, layer: i32, column: i32, row: i32, gid: i32) ---",
        "tile_draw_tile": "tile_draw_tile :: proc(tilemap: Tilemap, gid: i32, posX: i32, posY: i32) ---",
        "tile_image": "tile_image :: proc(tilemap: Tilemap, gid: i32) -> Image ---",
        "tile_gid_prop": "tile_gid_prop :: proc(tilemap: Tilemap, gid: i32, name: cstring) -> ^TilemapProp ---",
        "tile_gid_prop_count": "tile_gid_prop_count :: proc(tilemap: Tilemap, gid: i32) -> i32 ---",
        "tile_gid_prop_at": "tile_gid_prop_at :: proc(tilemap: Tilemap, gid: i32, index: i32) -> ^TilemapProp ---",
        "tile_object_count": "tile_object_count :: proc(tilemap: Tilemap, layer: i32) -> i32 ---",
        "tile_object": "tile_object :: proc(tilemap: Tilemap, layer: i32, index: i32) -> ^TilemapObject ---",
        "tile_object_index": "tile_object_index :: proc(tilemap: Tilemap, layer: i32, name: cstring) -> i32 ---",
        "tile_object_prop": "tile_object_prop :: proc(tilemap: Tilemap, layer: i32, index: i32, name: cstring) -> ^TilemapProp ---",
        "tile_object_prop_count": "tile_object_prop_count :: proc(tilemap: Tilemap, layer: i32, index: i32) -> i32 ---",
        "tile_object_prop_at": "tile_object_prop_at :: proc(tilemap: Tilemap, layer: i32, index: i32, propIndex: i32) -> ^TilemapProp ---",
        "current_time": "current_time :: proc() -> u64 ---",
        "delta_time": "delta_time :: proc() -> f32 ---",
        "random_int": "random_int :: proc(min: i32, max: i32) -> i32 ---",
        "random_seed_get": "random_seed_get :: proc() -> u64 ---",
        "random_seed_set": "random_seed_set :: proc(seed: u64) ---"
      }
    },
    "c3": {
      "id": "c3",
      "binding": "carts/c3/null0.c3",
      "example": "carts/c3/simple",
      "title": "C3",
      "image": "c3",
      "kind": "compiled",
      "file": "main.c3",
      "highlight": "c",
      "callback": "fn void load() @export(\"load\") {}",
      "toolchain": "c3c",
      "amd64Only": true,
      "notes": [
        "`module main` plus `import null0`."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-c3:latest",
      "decls": {
        "color_tint": "extern fn Color* color_tint(Color color, Color tint) @wasm(\"null0\", \"color_tint\");",
        "color_fade": "extern fn Color* color_fade(Color color, float alpha) @wasm(\"null0\", \"color_fade\");",
        "color_brightness": "extern fn Color* color_brightness(Color color, float factor) @wasm(\"null0\", \"color_brightness\");",
        "color_invert": "extern fn Color* color_invert(Color color) @wasm(\"null0\", \"color_invert\");",
        "color_alpha_blend": "extern fn Color* color_alpha_blend(Color dst, Color src) @wasm(\"null0\", \"color_alpha_blend\");",
        "color_contrast": "extern fn Color* color_contrast(Color color, float contrast) @wasm(\"null0\", \"color_contrast\");",
        "color_bilinear_interpolate": "extern fn Color* color_bilinear_interpolate(Color color00, Color color01, Color color10, Color color11, float coordinateX, float coordinateY) @wasm(\"null0\", \"color_bilinear_interpolate\");",
        "new_image": "extern fn Image new_image(int width, int height, Color color) @wasm(\"null0\", \"new_image\");",
        "image_copy": "extern fn Image image_copy(Image image) @wasm(\"null0\", \"image_copy\");",
        "image_subimage": "extern fn Image image_subimage(Image image, int x, int y, int width, int height) @wasm(\"null0\", \"image_subimage\");",
        "clear": "extern fn void clear(Color color) @wasm(\"null0\", \"clear\");",
        "draw_point": "extern fn void draw_point(int x, int y, Color color) @wasm(\"null0\", \"draw_point\");",
        "draw_line": "extern fn void draw_line(int startPosX, int startPosY, int endPosX, int endPosY, Color color) @wasm(\"null0\", \"draw_line\");",
        "draw_rectangle": "extern fn void draw_rectangle(int posX, int posY, int width, int height, Color color) @wasm(\"null0\", \"draw_rectangle\");",
        "draw_triangle": "extern fn void draw_triangle(int x1, int y1, int x2, int y2, int x3, int y3, Color color) @wasm(\"null0\", \"draw_triangle\");",
        "draw_ellipse": "extern fn void draw_ellipse(int centerX, int centerY, int radiusX, int radiusY, Color color) @wasm(\"null0\", \"draw_ellipse\");",
        "draw_circle": "extern fn void draw_circle(int centerX, int centerY, int radius, Color color) @wasm(\"null0\", \"draw_circle\");",
        "draw_polygon": "extern fn void draw_polygon(Vector* points, int numPoints, Color color) @wasm(\"null0\", \"draw_polygon\");",
        "draw_arc": "extern fn void draw_arc(int centerX, int centerY, float radius, float startAngle, float endAngle, int segments, Color color) @wasm(\"null0\", \"draw_arc\");",
        "draw_rectangle_rounded": "extern fn void draw_rectangle_rounded(int x, int y, int width, int height, int cornerRadius, Color color) @wasm(\"null0\", \"draw_rectangle_rounded\");",
        "draw_image": "extern fn void draw_image(Image src, int posX, int posY) @wasm(\"null0\", \"draw_image\");",
        "draw_image_tint": "extern fn void draw_image_tint(Image src, int posX, int posY, Color tint) @wasm(\"null0\", \"draw_image_tint\");",
        "draw_image_rotated": "extern fn void draw_image_rotated(Image src, int posX, int posY, float degrees, float offsetX, float offsetY, int filter) @wasm(\"null0\", \"draw_image_rotated\");",
        "draw_image_flipped": "extern fn void draw_image_flipped(Image src, int posX, int posY, bool flipHorizontal, bool flipVertical, bool flipDiagonal) @wasm(\"null0\", \"draw_image_flipped\");",
        "draw_image_scaled": "extern fn void draw_image_scaled(Image src, int posX, int posY, float scaleX, float scaleY, float offsetX, float offsetY, int filter) @wasm(\"null0\", \"draw_image_scaled\");",
        "draw_text": "extern fn void draw_text(Font font, char* text, int posX, int posY, Color color) @wasm(\"null0\", \"draw_text\");",
        "save_image": "extern fn void save_image(Image image, char* filename) @wasm(\"null0\", \"save_image\");",
        "load_image": "extern fn Image load_image(char* filename) @wasm(\"null0\", \"load_image\");",
        "image_resize": "extern fn Image image_resize(Image image, int newWidth, int newHeight, int filter) @wasm(\"null0\", \"image_resize\");",
        "image_scale": "extern fn Image image_scale(Image image, float scaleX, float scaleY, int filter) @wasm(\"null0\", \"image_scale\");",
        "image_color_replace": "extern fn void image_color_replace(Image image, Color color, Color replace) @wasm(\"null0\", \"image_color_replace\");",
        "image_color_tint": "extern fn void image_color_tint(Image image, Color color) @wasm(\"null0\", \"image_color_tint\");",
        "image_color_fade": "extern fn void image_color_fade(Image image, float alpha) @wasm(\"null0\", \"image_color_fade\");",
        "font_copy": "extern fn Font font_copy(Font font) @wasm(\"null0\", \"font_copy\");",
        "font_scale": "extern fn Font font_scale(Font font, float scaleX, float scaleY, int filter) @wasm(\"null0\", \"font_scale\");",
        "load_font_bmf": "extern fn Font load_font_bmf(char* filename, char* characters) @wasm(\"null0\", \"load_font_bmf\");",
        "load_font_bmf_from_image": "extern fn Font load_font_bmf_from_image(Image image, char* characters) @wasm(\"null0\", \"load_font_bmf_from_image\");",
        "measure_text": "extern fn Dimensions* measure_text(Font font, char* text, int textLength) @wasm(\"null0\", \"measure_text\");",
        "measure_image": "extern fn Dimensions* measure_image(Image image) @wasm(\"null0\", \"measure_image\");",
        "load_font_tty": "extern fn Font load_font_tty(char* filename, int glyphWidth, int glyphHeight, char* characters) @wasm(\"null0\", \"load_font_tty\");",
        "load_font_tty_from_image": "extern fn Font load_font_tty_from_image(Image image, int glyphWidth, int glyphHeight, char* characters) @wasm(\"null0\", \"load_font_tty_from_image\");",
        "load_font_ttf": "extern fn Font load_font_ttf(char* filename, int fontSize) @wasm(\"null0\", \"load_font_ttf\");",
        "image_color_invert": "extern fn void image_color_invert(Image image) @wasm(\"null0\", \"image_color_invert\");",
        "image_alpha_border": "extern fn Rectangle* image_alpha_border(Image image, float threshold) @wasm(\"null0\", \"image_alpha_border\");",
        "image_crop": "extern fn void image_crop(Image image, int x, int y, int width, int height) @wasm(\"null0\", \"image_crop\");",
        "image_alpha_crop": "extern fn void image_alpha_crop(Image image, float threshold) @wasm(\"null0\", \"image_alpha_crop\");",
        "image_color_brightness": "extern fn void image_color_brightness(Image image, float factor) @wasm(\"null0\", \"image_color_brightness\");",
        "image_flip": "extern fn void image_flip(Image image, bool horizontal, bool vertical) @wasm(\"null0\", \"image_flip\");",
        "image_color_contrast": "extern fn void image_color_contrast(Image image, float contrast) @wasm(\"null0\", \"image_color_contrast\");",
        "image_alpha_mask": "extern fn void image_alpha_mask(Image image, Image alphaMask, int posX, int posY) @wasm(\"null0\", \"image_alpha_mask\");",
        "image_rotate": "extern fn Image image_rotate(Image image, float degrees, int filter) @wasm(\"null0\", \"image_rotate\");",
        "image_gradient": "extern fn Image image_gradient(int width, int height, Color topLeft, Color topRight, Color bottomLeft, Color bottomRight) @wasm(\"null0\", \"image_gradient\");",
        "unload_image": "extern fn void unload_image(Image image) @wasm(\"null0\", \"unload_image\");",
        "unload_font": "extern fn void unload_font(Font font) @wasm(\"null0\", \"unload_font\");",
        "clear_image": "extern fn void clear_image(Image destination, Color color) @wasm(\"null0\", \"clear_image\");",
        "draw_point_on_image": "extern fn void draw_point_on_image(Image destination, int x, int y, Color color) @wasm(\"null0\", \"draw_point_on_image\");",
        "draw_line_on_image": "extern fn void draw_line_on_image(Image destination, int startPosX, int startPosY, int endPosX, int endPosY, Color color) @wasm(\"null0\", \"draw_line_on_image\");",
        "draw_rectangle_on_image": "extern fn void draw_rectangle_on_image(Image destination, int posX, int posY, int width, int height, Color color) @wasm(\"null0\", \"draw_rectangle_on_image\");",
        "draw_triangle_on_image": "extern fn void draw_triangle_on_image(Image destination, int x1, int y1, int x2, int y2, int x3, int y3, Color color) @wasm(\"null0\", \"draw_triangle_on_image\");",
        "draw_ellipse_on_image": "extern fn void draw_ellipse_on_image(Image destination, int centerX, int centerY, int radiusX, int radiusY, Color color) @wasm(\"null0\", \"draw_ellipse_on_image\");",
        "draw_circle_on_image": "extern fn void draw_circle_on_image(Image destination, int centerX, int centerY, int radius, Color color) @wasm(\"null0\", \"draw_circle_on_image\");",
        "draw_polygon_on_image": "extern fn void draw_polygon_on_image(Image destination, Vector* points, int numPoints, Color color) @wasm(\"null0\", \"draw_polygon_on_image\");",
        "draw_rectangle_rounded_on_image": "extern fn void draw_rectangle_rounded_on_image(Image destination, int x, int y, int width, int height, int cornerRadius, Color color) @wasm(\"null0\", \"draw_rectangle_rounded_on_image\");",
        "draw_image_on_image": "extern fn void draw_image_on_image(Image destination, Image src, int posX, int posY) @wasm(\"null0\", \"draw_image_on_image\");",
        "draw_image_tint_on_image": "extern fn void draw_image_tint_on_image(Image destination, Image src, int posX, int posY, Color tint) @wasm(\"null0\", \"draw_image_tint_on_image\");",
        "draw_image_rotated_on_image": "extern fn void draw_image_rotated_on_image(Image destination, Image src, int posX, int posY, float degrees, float offsetX, float offsetY, int filter) @wasm(\"null0\", \"draw_image_rotated_on_image\");",
        "draw_image_flipped_on_image": "extern fn void draw_image_flipped_on_image(Image destination, Image src, int posX, int posY, bool flipHorizontal, bool flipVertical, bool flipDiagonal) @wasm(\"null0\", \"draw_image_flipped_on_image\");",
        "draw_image_scaled_on_image": "extern fn void draw_image_scaled_on_image(Image destination, Image src, int posX, int posY, float scaleX, float scaleY, float offsetX, float offsetY, int filter) @wasm(\"null0\", \"draw_image_scaled_on_image\");",
        "draw_text_on_image": "extern fn void draw_text_on_image(Image destination, Font font, char* text, int posX, int posY, Color color) @wasm(\"null0\", \"draw_text_on_image\");",
        "draw_rectangle_outline": "extern fn void draw_rectangle_outline(int posX, int posY, int width, int height, int thickness, Color color) @wasm(\"null0\", \"draw_rectangle_outline\");",
        "draw_triangle_outline": "extern fn void draw_triangle_outline(int x1, int y1, int x2, int y2, int x3, int y3, int thickness, Color color) @wasm(\"null0\", \"draw_triangle_outline\");",
        "draw_ellipse_outline": "extern fn void draw_ellipse_outline(int centerX, int centerY, int radiusX, int radiusY, int thickness, Color color) @wasm(\"null0\", \"draw_ellipse_outline\");",
        "draw_circle_outline": "extern fn void draw_circle_outline(int centerX, int centerY, int radius, int thickness, Color color) @wasm(\"null0\", \"draw_circle_outline\");",
        "draw_polygon_outline": "extern fn void draw_polygon_outline(Vector* points, int numPoints, int thickness, Color color) @wasm(\"null0\", \"draw_polygon_outline\");",
        "draw_arc_outline": "extern fn void draw_arc_outline(int centerX, int centerY, float radius, float startAngle, float endAngle, int segments, int thickness, Color color) @wasm(\"null0\", \"draw_arc_outline\");",
        "draw_rectangle_rounded_outline": "extern fn void draw_rectangle_rounded_outline(int x, int y, int width, int height, int cornerRadius, int thickness, Color color) @wasm(\"null0\", \"draw_rectangle_rounded_outline\");",
        "draw_rectangle_outline_on_image": "extern fn void draw_rectangle_outline_on_image(Image destination, int posX, int posY, int width, int height, int thickness, Color color) @wasm(\"null0\", \"draw_rectangle_outline_on_image\");",
        "draw_triangle_outline_on_image": "extern fn void draw_triangle_outline_on_image(Image destination, int x1, int y1, int x2, int y2, int x3, int y3, int thickness, Color color) @wasm(\"null0\", \"draw_triangle_outline_on_image\");",
        "draw_ellipse_outline_on_image": "extern fn void draw_ellipse_outline_on_image(Image destination, int centerX, int centerY, int radiusX, int radiusY, int thickness, Color color) @wasm(\"null0\", \"draw_ellipse_outline_on_image\");",
        "draw_circle_outline_on_image": "extern fn void draw_circle_outline_on_image(Image destination, int centerX, int centerY, int radius, int thickness, Color color) @wasm(\"null0\", \"draw_circle_outline_on_image\");",
        "draw_polygon_outline_on_image": "extern fn void draw_polygon_outline_on_image(Image destination, Vector* points, int numPoints, int thickness, Color color) @wasm(\"null0\", \"draw_polygon_outline_on_image\");",
        "draw_rectangle_rounded_outline_on_image": "extern fn void draw_rectangle_rounded_outline_on_image(Image destination, int x, int y, int width, int height, int cornerRadius, int thickness, Color color) @wasm(\"null0\", \"draw_rectangle_rounded_outline_on_image\");",
        "gui_begin_window": "extern fn bool gui_begin_window(char* title, Rectangle rect) @wasm(\"null0\", \"gui_begin_window\");",
        "gui_end_window": "extern fn void gui_end_window() @wasm(\"null0\", \"gui_end_window\");",
        "gui_button": "extern fn bool gui_button(char* label) @wasm(\"null0\", \"gui_button\");",
        "gui_label": "extern fn void gui_label(char* text) @wasm(\"null0\", \"gui_label\");",
        "gui_text": "extern fn void gui_text(char* text) @wasm(\"null0\", \"gui_text\");",
        "gui_checkbox": "extern fn bool gui_checkbox(char* label, bool state) @wasm(\"null0\", \"gui_checkbox\");",
        "gui_slider": "extern fn float gui_slider(float value, float low, float high) @wasm(\"null0\", \"gui_slider\");",
        "gui_layout_row": "extern fn void gui_layout_row(int* widths, int numWidths, int height) @wasm(\"null0\", \"gui_layout_row\");",
        "gui_end": "extern fn void gui_end() @wasm(\"null0\", \"gui_end\");",
        "gui_draw": "extern fn void gui_draw(Image dst) @wasm(\"null0\", \"gui_draw\");",
        "key_pressed": "extern fn bool key_pressed(int key) @wasm(\"null0\", \"key_pressed\");",
        "key_down": "extern fn bool key_down(int key) @wasm(\"null0\", \"key_down\");",
        "key_released": "extern fn bool key_released(int key) @wasm(\"null0\", \"key_released\");",
        "key_up": "extern fn bool key_up(int key) @wasm(\"null0\", \"key_up\");",
        "gamepad_button_pressed": "extern fn bool gamepad_button_pressed(int gamepad, int button) @wasm(\"null0\", \"gamepad_button_pressed\");",
        "gamepad_button_down": "extern fn bool gamepad_button_down(int gamepad, int button) @wasm(\"null0\", \"gamepad_button_down\");",
        "gamepad_button_released": "extern fn bool gamepad_button_released(int gamepad, int button) @wasm(\"null0\", \"gamepad_button_released\");",
        "mouse_position": "extern fn Vector* mouse_position() @wasm(\"null0\", \"mouse_position\");",
        "mouse_button_pressed": "extern fn bool mouse_button_pressed(int button) @wasm(\"null0\", \"mouse_button_pressed\");",
        "mouse_button_down": "extern fn bool mouse_button_down(int button) @wasm(\"null0\", \"mouse_button_down\");",
        "mouse_button_released": "extern fn bool mouse_button_released(int button) @wasm(\"null0\", \"mouse_button_released\");",
        "mouse_button_up": "extern fn bool mouse_button_up(int button) @wasm(\"null0\", \"mouse_button_up\");",
        "load_sound": "extern fn Sound load_sound(char* filename) @wasm(\"null0\", \"load_sound\");",
        "play_sound": "extern fn void play_sound(Sound sound, bool loop) @wasm(\"null0\", \"play_sound\");",
        "stop_sound": "extern fn void stop_sound(Sound sound) @wasm(\"null0\", \"stop_sound\");",
        "unload_sound": "extern fn void unload_sound(Sound sound) @wasm(\"null0\", \"unload_sound\");",
        "tts_sound": "extern fn Sound tts_sound(char* text, bool phonetic, int pitch, int speed, int throat, int mouth, bool sing) @wasm(\"null0\", \"tts_sound\");",
        "sfx_sound": "extern fn Sound sfx_sound(SfxParams* params) @wasm(\"null0\", \"sfx_sound\");",
        "sfx_generate": "extern fn SfxParams* sfx_generate(int type) @wasm(\"null0\", \"sfx_generate\");",
        "load_tilemap": "extern fn Tilemap load_tilemap(char* filename) @wasm(\"null0\", \"load_tilemap\");",
        "unload_tilemap": "extern fn void unload_tilemap(Tilemap tilemap) @wasm(\"null0\", \"unload_tilemap\");",
        "tile_update": "extern fn void tile_update(Tilemap tilemap, float deltaTime) @wasm(\"null0\", \"tile_update\");",
        "tile_map_size": "extern fn Dimensions* tile_map_size(Tilemap tilemap) @wasm(\"null0\", \"tile_map_size\");",
        "tile_tile_size": "extern fn Dimensions* tile_tile_size(Tilemap tilemap) @wasm(\"null0\", \"tile_tile_size\");",
        "tile_map_prop": "extern fn TilemapProp* tile_map_prop(Tilemap tilemap, char* name) @wasm(\"null0\", \"tile_map_prop\");",
        "tile_map_prop_count": "extern fn int tile_map_prop_count(Tilemap tilemap) @wasm(\"null0\", \"tile_map_prop_count\");",
        "tile_map_prop_at": "extern fn TilemapProp* tile_map_prop_at(Tilemap tilemap, int index) @wasm(\"null0\", \"tile_map_prop_at\");",
        "tile_draw": "extern fn void tile_draw(Tilemap tilemap, int posX, int posY) @wasm(\"null0\", \"tile_draw\");",
        "tile_draw_tint": "extern fn void tile_draw_tint(Tilemap tilemap, int posX, int posY, Color tint) @wasm(\"null0\", \"tile_draw_tint\");",
        "tile_draw_on_image": "extern fn void tile_draw_on_image(Image dst, Tilemap tilemap, int posX, int posY) @wasm(\"null0\", \"tile_draw_on_image\");",
        "tilemap_image": "extern fn Image tilemap_image(Tilemap tilemap) @wasm(\"null0\", \"tilemap_image\");",
        "tile_layer_count": "extern fn int tile_layer_count(Tilemap tilemap) @wasm(\"null0\", \"tile_layer_count\");",
        "tile_layer_index": "extern fn int tile_layer_index(Tilemap tilemap, char* name) @wasm(\"null0\", \"tile_layer_index\");",
        "tile_layer_name": "extern fn char* tile_layer_name(Tilemap tilemap, int layer) @wasm(\"null0\", \"tile_layer_name\");",
        "tile_layer_type": "extern fn TileLayerKind tile_layer_type(Tilemap tilemap, int layer) @wasm(\"null0\", \"tile_layer_type\");",
        "tile_layer_size": "extern fn Dimensions* tile_layer_size(Tilemap tilemap, int layer) @wasm(\"null0\", \"tile_layer_size\");",
        "tile_layer_visible": "extern fn bool tile_layer_visible(Tilemap tilemap, int layer) @wasm(\"null0\", \"tile_layer_visible\");",
        "tile_layer_prop": "extern fn TilemapProp* tile_layer_prop(Tilemap tilemap, int layer, char* name) @wasm(\"null0\", \"tile_layer_prop\");",
        "tile_layer_prop_count": "extern fn int tile_layer_prop_count(Tilemap tilemap, int layer) @wasm(\"null0\", \"tile_layer_prop_count\");",
        "tile_layer_prop_at": "extern fn TilemapProp* tile_layer_prop_at(Tilemap tilemap, int layer, int index) @wasm(\"null0\", \"tile_layer_prop_at\");",
        "tile_draw_layer": "extern fn void tile_draw_layer(Tilemap tilemap, int layer, int posX, int posY) @wasm(\"null0\", \"tile_draw_layer\");",
        "tile_draw_layer_tint": "extern fn void tile_draw_layer_tint(Tilemap tilemap, int layer, int posX, int posY, Color tint) @wasm(\"null0\", \"tile_draw_layer_tint\");",
        "tile_draw_layer_on_image": "extern fn void tile_draw_layer_on_image(Image dst, Tilemap tilemap, int layer, int posX, int posY) @wasm(\"null0\", \"tile_draw_layer_on_image\");",
        "tile_layer_image": "extern fn Image tile_layer_image(Tilemap tilemap, int layer) @wasm(\"null0\", \"tile_layer_image\");",
        "tile_get_tile": "extern fn int tile_get_tile(Tilemap tilemap, int layer, int column, int row) @wasm(\"null0\", \"tile_get_tile\");",
        "tile_set_tile": "extern fn void tile_set_tile(Tilemap tilemap, int layer, int column, int row, int gid) @wasm(\"null0\", \"tile_set_tile\");",
        "tile_draw_tile": "extern fn void tile_draw_tile(Tilemap tilemap, int gid, int posX, int posY) @wasm(\"null0\", \"tile_draw_tile\");",
        "tile_image": "extern fn Image tile_image(Tilemap tilemap, int gid) @wasm(\"null0\", \"tile_image\");",
        "tile_gid_prop": "extern fn TilemapProp* tile_gid_prop(Tilemap tilemap, int gid, char* name) @wasm(\"null0\", \"tile_gid_prop\");",
        "tile_gid_prop_count": "extern fn int tile_gid_prop_count(Tilemap tilemap, int gid) @wasm(\"null0\", \"tile_gid_prop_count\");",
        "tile_gid_prop_at": "extern fn TilemapProp* tile_gid_prop_at(Tilemap tilemap, int gid, int index) @wasm(\"null0\", \"tile_gid_prop_at\");",
        "tile_object_count": "extern fn int tile_object_count(Tilemap tilemap, int layer) @wasm(\"null0\", \"tile_object_count\");",
        "tile_object": "extern fn TilemapObject* tile_object(Tilemap tilemap, int layer, int index) @wasm(\"null0\", \"tile_object\");",
        "tile_object_index": "extern fn int tile_object_index(Tilemap tilemap, int layer, char* name) @wasm(\"null0\", \"tile_object_index\");",
        "tile_object_prop": "extern fn TilemapProp* tile_object_prop(Tilemap tilemap, int layer, int index, char* name) @wasm(\"null0\", \"tile_object_prop\");",
        "tile_object_prop_count": "extern fn int tile_object_prop_count(Tilemap tilemap, int layer, int index) @wasm(\"null0\", \"tile_object_prop_count\");",
        "tile_object_prop_at": "extern fn TilemapProp* tile_object_prop_at(Tilemap tilemap, int layer, int index, int propIndex) @wasm(\"null0\", \"tile_object_prop_at\");",
        "current_time": "extern fn ulong current_time() @wasm(\"null0\", \"current_time\");",
        "delta_time": "extern fn float delta_time() @wasm(\"null0\", \"delta_time\");",
        "random_int": "extern fn int random_int(int min, int max) @wasm(\"null0\", \"random_int\");",
        "random_seed_get": "extern fn ulong random_seed_get() @wasm(\"null0\", \"random_seed_get\");",
        "random_seed_set": "extern fn void random_seed_set(ulong seed) @wasm(\"null0\", \"random_seed_set\");"
      }
    },
    "d": {
      "id": "d",
      "binding": "carts/d/null0.d",
      "example": "carts/d/simple",
      "title": "D",
      "image": "d",
      "kind": "compiled",
      "file": "main.d",
      "highlight": "d",
      "callback": "export extern(C) void load() {}",
      "toolchain": "ldc2",
      "notes": [
        "`-betterC`, so no druntime and no GC."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-d:latest",
      "decls": {
        "color_tint": "extern(C) Color* color_tint(Color color, Color tint);",
        "color_fade": "extern(C) Color* color_fade(Color color, float alpha);",
        "color_brightness": "extern(C) Color* color_brightness(Color color, float factor);",
        "color_invert": "extern(C) Color* color_invert(Color color);",
        "color_alpha_blend": "extern(C) Color* color_alpha_blend(Color dst, Color src);",
        "color_contrast": "extern(C) Color* color_contrast(Color color, float contrast);",
        "color_bilinear_interpolate": "extern(C) Color* color_bilinear_interpolate(Color color00, Color color01, Color color10, Color color11, float coordinateX, float coordinateY);",
        "new_image": "extern(C) Image new_image(int width, int height, Color color);",
        "image_copy": "extern(C) Image image_copy(Image image);",
        "image_subimage": "extern(C) Image image_subimage(Image image, int x, int y, int width, int height);",
        "clear": "extern(C) void clear(Color color);",
        "draw_point": "extern(C) void draw_point(int x, int y, Color color);",
        "draw_line": "extern(C) void draw_line(int startPosX, int startPosY, int endPosX, int endPosY, Color color);",
        "draw_rectangle": "extern(C) void draw_rectangle(int posX, int posY, int width, int height, Color color);",
        "draw_triangle": "extern(C) void draw_triangle(int x1, int y1, int x2, int y2, int x3, int y3, Color color);",
        "draw_ellipse": "extern(C) void draw_ellipse(int centerX, int centerY, int radiusX, int radiusY, Color color);",
        "draw_circle": "extern(C) void draw_circle(int centerX, int centerY, int radius, Color color);",
        "draw_polygon": "extern(C) void draw_polygon(const(Vector)* points, int numPoints, Color color);",
        "draw_arc": "extern(C) void draw_arc(int centerX, int centerY, float radius, float startAngle, float endAngle, int segments, Color color);",
        "draw_rectangle_rounded": "extern(C) void draw_rectangle_rounded(int x, int y, int width, int height, int cornerRadius, Color color);",
        "draw_image": "extern(C) void draw_image(Image src, int posX, int posY);",
        "draw_image_tint": "extern(C) void draw_image_tint(Image src, int posX, int posY, Color tint);",
        "draw_image_rotated": "extern(C) void draw_image_rotated(Image src, int posX, int posY, float degrees, float offsetX, float offsetY, ImageFilter filter);",
        "draw_image_flipped": "extern(C) void draw_image_flipped(Image src, int posX, int posY, bool flipHorizontal, bool flipVertical, bool flipDiagonal);",
        "draw_image_scaled": "extern(C) void draw_image_scaled(Image src, int posX, int posY, float scaleX, float scaleY, float offsetX, float offsetY, ImageFilter filter);",
        "draw_text": "extern(C) void draw_text(Font font, const(char)* text, int posX, int posY, Color color);",
        "save_image": "extern(C) void save_image(Image image, const(char)* filename);",
        "load_image": "extern(C) Image load_image(const(char)* filename);",
        "image_resize": "extern(C) Image image_resize(Image image, int newWidth, int newHeight, ImageFilter filter);",
        "image_scale": "extern(C) Image image_scale(Image image, float scaleX, float scaleY, ImageFilter filter);",
        "image_color_replace": "extern(C) void image_color_replace(Image image, Color color, Color replace);",
        "image_color_tint": "extern(C) void image_color_tint(Image image, Color color);",
        "image_color_fade": "extern(C) void image_color_fade(Image image, float alpha);",
        "font_copy": "extern(C) Font font_copy(Font font);",
        "font_scale": "extern(C) Font font_scale(Font font, float scaleX, float scaleY, ImageFilter filter);",
        "load_font_bmf": "extern(C) Font load_font_bmf(const(char)* filename, const(char)* characters);",
        "load_font_bmf_from_image": "extern(C) Font load_font_bmf_from_image(Image image, const(char)* characters);",
        "measure_text": "extern(C) Dimensions* measure_text(Font font, const(char)* text, int textLength);",
        "measure_image": "extern(C) Dimensions* measure_image(Image image);",
        "load_font_tty": "extern(C) Font load_font_tty(const(char)* filename, int glyphWidth, int glyphHeight, const(char)* characters);",
        "load_font_tty_from_image": "extern(C) Font load_font_tty_from_image(Image image, int glyphWidth, int glyphHeight, const(char)* characters);",
        "load_font_ttf": "extern(C) Font load_font_ttf(const(char)* filename, int fontSize);",
        "image_color_invert": "extern(C) void image_color_invert(Image image);",
        "image_alpha_border": "extern(C) Rectangle* image_alpha_border(Image image, float threshold);",
        "image_crop": "extern(C) void image_crop(Image image, int x, int y, int width, int height);",
        "image_alpha_crop": "extern(C) void image_alpha_crop(Image image, float threshold);",
        "image_color_brightness": "extern(C) void image_color_brightness(Image image, float factor);",
        "image_flip": "extern(C) void image_flip(Image image, bool horizontal, bool vertical);",
        "image_color_contrast": "extern(C) void image_color_contrast(Image image, float contrast);",
        "image_alpha_mask": "extern(C) void image_alpha_mask(Image image, Image alphaMask, int posX, int posY);",
        "image_rotate": "extern(C) Image image_rotate(Image image, float degrees, ImageFilter filter);",
        "image_gradient": "extern(C) Image image_gradient(int width, int height, Color topLeft, Color topRight, Color bottomLeft, Color bottomRight);",
        "unload_image": "extern(C) void unload_image(Image image);",
        "unload_font": "extern(C) void unload_font(Font font);",
        "clear_image": "extern(C) void clear_image(Image destination, Color color);",
        "draw_point_on_image": "extern(C) void draw_point_on_image(Image destination, int x, int y, Color color);",
        "draw_line_on_image": "extern(C) void draw_line_on_image(Image destination, int startPosX, int startPosY, int endPosX, int endPosY, Color color);",
        "draw_rectangle_on_image": "extern(C) void draw_rectangle_on_image(Image destination, int posX, int posY, int width, int height, Color color);",
        "draw_triangle_on_image": "extern(C) void draw_triangle_on_image(Image destination, int x1, int y1, int x2, int y2, int x3, int y3, Color color);",
        "draw_ellipse_on_image": "extern(C) void draw_ellipse_on_image(Image destination, int centerX, int centerY, int radiusX, int radiusY, Color color);",
        "draw_circle_on_image": "extern(C) void draw_circle_on_image(Image destination, int centerX, int centerY, int radius, Color color);",
        "draw_polygon_on_image": "extern(C) void draw_polygon_on_image(Image destination, const(Vector)* points, int numPoints, Color color);",
        "draw_rectangle_rounded_on_image": "extern(C) void draw_rectangle_rounded_on_image(Image destination, int x, int y, int width, int height, int cornerRadius, Color color);",
        "draw_image_on_image": "extern(C) void draw_image_on_image(Image destination, Image src, int posX, int posY);",
        "draw_image_tint_on_image": "extern(C) void draw_image_tint_on_image(Image destination, Image src, int posX, int posY, Color tint);",
        "draw_image_rotated_on_image": "extern(C) void draw_image_rotated_on_image(Image destination, Image src, int posX, int posY, float degrees, float offsetX, float offsetY, ImageFilter filter);",
        "draw_image_flipped_on_image": "extern(C) void draw_image_flipped_on_image(Image destination, Image src, int posX, int posY, bool flipHorizontal, bool flipVertical, bool flipDiagonal);",
        "draw_image_scaled_on_image": "extern(C) void draw_image_scaled_on_image(Image destination, Image src, int posX, int posY, float scaleX, float scaleY, float offsetX, float offsetY, ImageFilter filter);",
        "draw_text_on_image": "extern(C) void draw_text_on_image(Image destination, Font font, const(char)* text, int posX, int posY, Color color);",
        "draw_rectangle_outline": "extern(C) void draw_rectangle_outline(int posX, int posY, int width, int height, int thickness, Color color);",
        "draw_triangle_outline": "extern(C) void draw_triangle_outline(int x1, int y1, int x2, int y2, int x3, int y3, int thickness, Color color);",
        "draw_ellipse_outline": "extern(C) void draw_ellipse_outline(int centerX, int centerY, int radiusX, int radiusY, int thickness, Color color);",
        "draw_circle_outline": "extern(C) void draw_circle_outline(int centerX, int centerY, int radius, int thickness, Color color);",
        "draw_polygon_outline": "extern(C) void draw_polygon_outline(const(Vector)* points, int numPoints, int thickness, Color color);",
        "draw_arc_outline": "extern(C) void draw_arc_outline(int centerX, int centerY, float radius, float startAngle, float endAngle, int segments, int thickness, Color color);",
        "draw_rectangle_rounded_outline": "extern(C) void draw_rectangle_rounded_outline(int x, int y, int width, int height, int cornerRadius, int thickness, Color color);",
        "draw_rectangle_outline_on_image": "extern(C) void draw_rectangle_outline_on_image(Image destination, int posX, int posY, int width, int height, int thickness, Color color);",
        "draw_triangle_outline_on_image": "extern(C) void draw_triangle_outline_on_image(Image destination, int x1, int y1, int x2, int y2, int x3, int y3, int thickness, Color color);",
        "draw_ellipse_outline_on_image": "extern(C) void draw_ellipse_outline_on_image(Image destination, int centerX, int centerY, int radiusX, int radiusY, int thickness, Color color);",
        "draw_circle_outline_on_image": "extern(C) void draw_circle_outline_on_image(Image destination, int centerX, int centerY, int radius, int thickness, Color color);",
        "draw_polygon_outline_on_image": "extern(C) void draw_polygon_outline_on_image(Image destination, const(Vector)* points, int numPoints, int thickness, Color color);",
        "draw_rectangle_rounded_outline_on_image": "extern(C) void draw_rectangle_rounded_outline_on_image(Image destination, int x, int y, int width, int height, int cornerRadius, int thickness, Color color);",
        "gui_begin_window": "extern(C) bool gui_begin_window(const(char)* title, Rectangle rect);",
        "gui_end_window": "extern(C) void gui_end_window();",
        "gui_button": "extern(C) bool gui_button(const(char)* label);",
        "gui_label": "extern(C) void gui_label(const(char)* text);",
        "gui_text": "extern(C) void gui_text(const(char)* text);",
        "gui_checkbox": "extern(C) bool gui_checkbox(const(char)* label, bool state);",
        "gui_slider": "extern(C) float gui_slider(float value, float low, float high);",
        "gui_layout_row": "extern(C) void gui_layout_row(const(int)* widths, int numWidths, int height);",
        "gui_end": "extern(C) void gui_end();",
        "gui_draw": "extern(C) void gui_draw(Image dst);",
        "key_pressed": "extern(C) bool key_pressed(Key key);",
        "key_down": "extern(C) bool key_down(Key key);",
        "key_released": "extern(C) bool key_released(Key key);",
        "key_up": "extern(C) bool key_up(Key key);",
        "gamepad_button_pressed": "extern(C) bool gamepad_button_pressed(int gamepad, GamepadButton button);",
        "gamepad_button_down": "extern(C) bool gamepad_button_down(int gamepad, GamepadButton button);",
        "gamepad_button_released": "extern(C) bool gamepad_button_released(int gamepad, GamepadButton button);",
        "mouse_position": "extern(C) Vector* mouse_position();",
        "mouse_button_pressed": "extern(C) bool mouse_button_pressed(MouseButton button);",
        "mouse_button_down": "extern(C) bool mouse_button_down(MouseButton button);",
        "mouse_button_released": "extern(C) bool mouse_button_released(MouseButton button);",
        "mouse_button_up": "extern(C) bool mouse_button_up(MouseButton button);",
        "load_sound": "extern(C) Sound load_sound(const(char)* filename);",
        "play_sound": "extern(C) void play_sound(Sound sound, bool loop);",
        "stop_sound": "extern(C) void stop_sound(Sound sound);",
        "unload_sound": "extern(C) void unload_sound(Sound sound);",
        "tts_sound": "extern(C) Sound tts_sound(const(char)* text, bool phonetic, int pitch, int speed, int throat, int mouth, bool sing);",
        "sfx_sound": "extern(C) Sound sfx_sound(const(SfxParams)* params);",
        "sfx_generate": "extern(C) SfxParams* sfx_generate(SfxPresetType type);",
        "load_tilemap": "extern(C) Tilemap load_tilemap(const(char)* filename);",
        "unload_tilemap": "extern(C) void unload_tilemap(Tilemap tilemap);",
        "tile_update": "extern(C) void tile_update(Tilemap tilemap, float deltaTime);",
        "tile_map_size": "extern(C) Dimensions* tile_map_size(Tilemap tilemap);",
        "tile_tile_size": "extern(C) Dimensions* tile_tile_size(Tilemap tilemap);",
        "tile_map_prop": "extern(C) TilemapProp* tile_map_prop(Tilemap tilemap, const(char)* name);",
        "tile_map_prop_count": "extern(C) int tile_map_prop_count(Tilemap tilemap);",
        "tile_map_prop_at": "extern(C) TilemapProp* tile_map_prop_at(Tilemap tilemap, int index);",
        "tile_draw": "extern(C) void tile_draw(Tilemap tilemap, int posX, int posY);",
        "tile_draw_tint": "extern(C) void tile_draw_tint(Tilemap tilemap, int posX, int posY, Color tint);",
        "tile_draw_on_image": "extern(C) void tile_draw_on_image(Image dst, Tilemap tilemap, int posX, int posY);",
        "tilemap_image": "extern(C) Image tilemap_image(Tilemap tilemap);",
        "tile_layer_count": "extern(C) int tile_layer_count(Tilemap tilemap);",
        "tile_layer_index": "extern(C) int tile_layer_index(Tilemap tilemap, const(char)* name);",
        "tile_layer_name": "extern(C) char* tile_layer_name(Tilemap tilemap, int layer);",
        "tile_layer_type": "extern(C) TileLayerKind tile_layer_type(Tilemap tilemap, int layer);",
        "tile_layer_size": "extern(C) Dimensions* tile_layer_size(Tilemap tilemap, int layer);",
        "tile_layer_visible": "extern(C) bool tile_layer_visible(Tilemap tilemap, int layer);",
        "tile_layer_prop": "extern(C) TilemapProp* tile_layer_prop(Tilemap tilemap, int layer, const(char)* name);",
        "tile_layer_prop_count": "extern(C) int tile_layer_prop_count(Tilemap tilemap, int layer);",
        "tile_layer_prop_at": "extern(C) TilemapProp* tile_layer_prop_at(Tilemap tilemap, int layer, int index);",
        "tile_draw_layer": "extern(C) void tile_draw_layer(Tilemap tilemap, int layer, int posX, int posY);",
        "tile_draw_layer_tint": "extern(C) void tile_draw_layer_tint(Tilemap tilemap, int layer, int posX, int posY, Color tint);",
        "tile_draw_layer_on_image": "extern(C) void tile_draw_layer_on_image(Image dst, Tilemap tilemap, int layer, int posX, int posY);",
        "tile_layer_image": "extern(C) Image tile_layer_image(Tilemap tilemap, int layer);",
        "tile_get_tile": "extern(C) int tile_get_tile(Tilemap tilemap, int layer, int column, int row);",
        "tile_set_tile": "extern(C) void tile_set_tile(Tilemap tilemap, int layer, int column, int row, int gid);",
        "tile_draw_tile": "extern(C) void tile_draw_tile(Tilemap tilemap, int gid, int posX, int posY);",
        "tile_image": "extern(C) Image tile_image(Tilemap tilemap, int gid);",
        "tile_gid_prop": "extern(C) TilemapProp* tile_gid_prop(Tilemap tilemap, int gid, const(char)* name);",
        "tile_gid_prop_count": "extern(C) int tile_gid_prop_count(Tilemap tilemap, int gid);",
        "tile_gid_prop_at": "extern(C) TilemapProp* tile_gid_prop_at(Tilemap tilemap, int gid, int index);",
        "tile_object_count": "extern(C) int tile_object_count(Tilemap tilemap, int layer);",
        "tile_object": "extern(C) TilemapObject* tile_object(Tilemap tilemap, int layer, int index);",
        "tile_object_index": "extern(C) int tile_object_index(Tilemap tilemap, int layer, const(char)* name);",
        "tile_object_prop": "extern(C) TilemapProp* tile_object_prop(Tilemap tilemap, int layer, int index, const(char)* name);",
        "tile_object_prop_count": "extern(C) int tile_object_prop_count(Tilemap tilemap, int layer, int index);",
        "tile_object_prop_at": "extern(C) TilemapProp* tile_object_prop_at(Tilemap tilemap, int layer, int index, int propIndex);",
        "current_time": "extern(C) ulong current_time();",
        "delta_time": "extern(C) float delta_time();",
        "random_int": "extern(C) int random_int(int min, int max);",
        "random_seed_get": "extern(C) ulong random_seed_get();",
        "random_seed_set": "extern(C) void random_seed_set(ulong seed);"
      }
    },
    "onyx": {
      "id": "onyx",
      "binding": "carts/onyx/null0.onyx",
      "example": "carts/onyx/simple",
      "title": "Onyx",
      "image": "onyx",
      "kind": "compiled",
      "file": "main.onyx",
      "highlight": "odin",
      "callback": "#export \"load\" load",
      "entry": "main :: () {}",
      "toolchain": "onyx",
      "notes": [
        "`#load \"null0.onyx\"`, and keep an empty `main` around.",
        "Text takes a `u32` pointer, not a `str` - onyx cannot alias a foreign import name, so wrap literals with `cstr(\"...\")` from the bindings."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-onyx:latest",
      "decls": {
        "color_tint": "color_tint :: (color: Color, tint: Color) -> u32 ---",
        "color_fade": "color_fade :: (color: Color, alpha: f32) -> u32 ---",
        "color_brightness": "color_brightness :: (color: Color, factor: f32) -> u32 ---",
        "color_invert": "color_invert :: (color: Color) -> u32 ---",
        "color_alpha_blend": "color_alpha_blend :: (dst: Color, src: Color) -> u32 ---",
        "color_contrast": "color_contrast :: (color: Color, contrast: f32) -> u32 ---",
        "color_bilinear_interpolate": "color_bilinear_interpolate :: (color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: f32, coordinateY: f32) -> u32 ---",
        "new_image": "new_image :: (width: i32, height: i32, color: Color) -> Image ---",
        "image_copy": "image_copy :: (image: Image) -> Image ---",
        "image_subimage": "image_subimage :: (image: Image, x: i32, y: i32, width: i32, height: i32) -> Image ---",
        "clear": "clear :: (color: Color) -> void ---",
        "draw_point": "draw_point :: (x: i32, y: i32, color: Color) -> void ---",
        "draw_line": "draw_line :: (startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color) -> void ---",
        "draw_rectangle": "draw_rectangle :: (posX: i32, posY: i32, width: i32, height: i32, color: Color) -> void ---",
        "draw_triangle": "draw_triangle :: (x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color) -> void ---",
        "draw_ellipse": "draw_ellipse :: (centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color) -> void ---",
        "draw_circle": "draw_circle :: (centerX: i32, centerY: i32, radius: i32, color: Color) -> void ---",
        "draw_polygon": "draw_polygon :: (points: u32, numPoints: i32, color: Color) -> void ---",
        "draw_arc": "draw_arc :: (centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, color: Color) -> void ---",
        "draw_rectangle_rounded": "draw_rectangle_rounded :: (x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color) -> void ---",
        "draw_image": "draw_image :: (src: Image, posX: i32, posY: i32) -> void ---",
        "draw_image_tint": "draw_image_tint :: (src: Image, posX: i32, posY: i32, tint: Color) -> void ---",
        "draw_image_rotated": "draw_image_rotated :: (src: Image, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: i32) -> void ---",
        "draw_image_flipped": "draw_image_flipped :: (src: Image, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) -> void ---",
        "draw_image_scaled": "draw_image_scaled :: (src: Image, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: i32) -> void ---",
        "draw_text": "draw_text :: (font: Font, text: u32, posX: i32, posY: i32, color: Color) -> void ---",
        "save_image": "save_image :: (image: Image, filename: u32) -> void ---",
        "load_image": "load_image :: (filename: u32) -> Image ---",
        "image_resize": "image_resize :: (image: Image, newWidth: i32, newHeight: i32, filter: i32) -> Image ---",
        "image_scale": "image_scale :: (image: Image, scaleX: f32, scaleY: f32, filter: i32) -> Image ---",
        "image_color_replace": "image_color_replace :: (image: Image, color: Color, replace: Color) -> void ---",
        "image_color_tint": "image_color_tint :: (image: Image, color: Color) -> void ---",
        "image_color_fade": "image_color_fade :: (image: Image, alpha: f32) -> void ---",
        "font_copy": "font_copy :: (font: Font) -> Font ---",
        "font_scale": "font_scale :: (font: Font, scaleX: f32, scaleY: f32, filter: i32) -> Font ---",
        "load_font_bmf": "load_font_bmf :: (filename: u32, characters: u32) -> Font ---",
        "load_font_bmf_from_image": "load_font_bmf_from_image :: (image: Image, characters: u32) -> Font ---",
        "measure_text": "measure_text :: (font: Font, text: u32, textLength: i32) -> u32 ---",
        "measure_image": "measure_image :: (image: Image) -> u32 ---",
        "load_font_tty": "load_font_tty :: (filename: u32, glyphWidth: i32, glyphHeight: i32, characters: u32) -> Font ---",
        "load_font_tty_from_image": "load_font_tty_from_image :: (image: Image, glyphWidth: i32, glyphHeight: i32, characters: u32) -> Font ---",
        "load_font_ttf": "load_font_ttf :: (filename: u32, fontSize: i32) -> Font ---",
        "image_color_invert": "image_color_invert :: (image: Image) -> void ---",
        "image_alpha_border": "image_alpha_border :: (image: Image, threshold: f32) -> u32 ---",
        "image_crop": "image_crop :: (image: Image, x: i32, y: i32, width: i32, height: i32) -> void ---",
        "image_alpha_crop": "image_alpha_crop :: (image: Image, threshold: f32) -> void ---",
        "image_color_brightness": "image_color_brightness :: (image: Image, factor: f32) -> void ---",
        "image_flip": "image_flip :: (image: Image, horizontal: bool, vertical: bool) -> void ---",
        "image_color_contrast": "image_color_contrast :: (image: Image, contrast: f32) -> void ---",
        "image_alpha_mask": "image_alpha_mask :: (image: Image, alphaMask: Image, posX: i32, posY: i32) -> void ---",
        "image_rotate": "image_rotate :: (image: Image, degrees: f32, filter: i32) -> Image ---",
        "image_gradient": "image_gradient :: (width: i32, height: i32, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color) -> Image ---",
        "unload_image": "unload_image :: (image: Image) -> void ---",
        "unload_font": "unload_font :: (font: Font) -> void ---",
        "clear_image": "clear_image :: (destination: Image, color: Color) -> void ---",
        "draw_point_on_image": "draw_point_on_image :: (destination: Image, x: i32, y: i32, color: Color) -> void ---",
        "draw_line_on_image": "draw_line_on_image :: (destination: Image, startPosX: i32, startPosY: i32, endPosX: i32, endPosY: i32, color: Color) -> void ---",
        "draw_rectangle_on_image": "draw_rectangle_on_image :: (destination: Image, posX: i32, posY: i32, width: i32, height: i32, color: Color) -> void ---",
        "draw_triangle_on_image": "draw_triangle_on_image :: (destination: Image, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, color: Color) -> void ---",
        "draw_ellipse_on_image": "draw_ellipse_on_image :: (destination: Image, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, color: Color) -> void ---",
        "draw_circle_on_image": "draw_circle_on_image :: (destination: Image, centerX: i32, centerY: i32, radius: i32, color: Color) -> void ---",
        "draw_polygon_on_image": "draw_polygon_on_image :: (destination: Image, points: u32, numPoints: i32, color: Color) -> void ---",
        "draw_rectangle_rounded_on_image": "draw_rectangle_rounded_on_image :: (destination: Image, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, color: Color) -> void ---",
        "draw_image_on_image": "draw_image_on_image :: (destination: Image, src: Image, posX: i32, posY: i32) -> void ---",
        "draw_image_tint_on_image": "draw_image_tint_on_image :: (destination: Image, src: Image, posX: i32, posY: i32, tint: Color) -> void ---",
        "draw_image_rotated_on_image": "draw_image_rotated_on_image :: (destination: Image, src: Image, posX: i32, posY: i32, degrees: f32, offsetX: f32, offsetY: f32, filter: i32) -> void ---",
        "draw_image_flipped_on_image": "draw_image_flipped_on_image :: (destination: Image, src: Image, posX: i32, posY: i32, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) -> void ---",
        "draw_image_scaled_on_image": "draw_image_scaled_on_image :: (destination: Image, src: Image, posX: i32, posY: i32, scaleX: f32, scaleY: f32, offsetX: f32, offsetY: f32, filter: i32) -> void ---",
        "draw_text_on_image": "draw_text_on_image :: (destination: Image, font: Font, text: u32, posX: i32, posY: i32, color: Color) -> void ---",
        "draw_rectangle_outline": "draw_rectangle_outline :: (posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color) -> void ---",
        "draw_triangle_outline": "draw_triangle_outline :: (x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color) -> void ---",
        "draw_ellipse_outline": "draw_ellipse_outline :: (centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color) -> void ---",
        "draw_circle_outline": "draw_circle_outline :: (centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color) -> void ---",
        "draw_polygon_outline": "draw_polygon_outline :: (points: u32, numPoints: i32, thickness: i32, color: Color) -> void ---",
        "draw_arc_outline": "draw_arc_outline :: (centerX: i32, centerY: i32, radius: f32, startAngle: f32, endAngle: f32, segments: i32, thickness: i32, color: Color) -> void ---",
        "draw_rectangle_rounded_outline": "draw_rectangle_rounded_outline :: (x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color) -> void ---",
        "draw_rectangle_outline_on_image": "draw_rectangle_outline_on_image :: (destination: Image, posX: i32, posY: i32, width: i32, height: i32, thickness: i32, color: Color) -> void ---",
        "draw_triangle_outline_on_image": "draw_triangle_outline_on_image :: (destination: Image, x1: i32, y1: i32, x2: i32, y2: i32, x3: i32, y3: i32, thickness: i32, color: Color) -> void ---",
        "draw_ellipse_outline_on_image": "draw_ellipse_outline_on_image :: (destination: Image, centerX: i32, centerY: i32, radiusX: i32, radiusY: i32, thickness: i32, color: Color) -> void ---",
        "draw_circle_outline_on_image": "draw_circle_outline_on_image :: (destination: Image, centerX: i32, centerY: i32, radius: i32, thickness: i32, color: Color) -> void ---",
        "draw_polygon_outline_on_image": "draw_polygon_outline_on_image :: (destination: Image, points: u32, numPoints: i32, thickness: i32, color: Color) -> void ---",
        "draw_rectangle_rounded_outline_on_image": "draw_rectangle_rounded_outline_on_image :: (destination: Image, x: i32, y: i32, width: i32, height: i32, cornerRadius: i32, thickness: i32, color: Color) -> void ---",
        "gui_begin_window": "gui_begin_window :: (title: u32, rect: u32) -> bool ---",
        "gui_end_window": "gui_end_window :: () -> void ---",
        "gui_button": "gui_button :: (label: u32) -> bool ---",
        "gui_label": "gui_label :: (text: u32) -> void ---",
        "gui_text": "gui_text :: (text: u32) -> void ---",
        "gui_checkbox": "gui_checkbox :: (label: u32, state: bool) -> bool ---",
        "gui_slider": "gui_slider :: (value: f32, low: f32, high: f32) -> f32 ---",
        "gui_layout_row": "gui_layout_row :: (widths: u32, numWidths: i32, height: i32) -> void ---",
        "gui_end": "gui_end :: () -> void ---",
        "gui_draw": "gui_draw :: (dst: Image) -> void ---",
        "key_pressed": "key_pressed :: (key: i32) -> bool ---",
        "key_down": "key_down :: (key: i32) -> bool ---",
        "key_released": "key_released :: (key: i32) -> bool ---",
        "key_up": "key_up :: (key: i32) -> bool ---",
        "gamepad_button_pressed": "gamepad_button_pressed :: (gamepad: i32, button: i32) -> bool ---",
        "gamepad_button_down": "gamepad_button_down :: (gamepad: i32, button: i32) -> bool ---",
        "gamepad_button_released": "gamepad_button_released :: (gamepad: i32, button: i32) -> bool ---",
        "mouse_position": "mouse_position :: () -> u32 ---",
        "mouse_button_pressed": "mouse_button_pressed :: (button: i32) -> bool ---",
        "mouse_button_down": "mouse_button_down :: (button: i32) -> bool ---",
        "mouse_button_released": "mouse_button_released :: (button: i32) -> bool ---",
        "mouse_button_up": "mouse_button_up :: (button: i32) -> bool ---",
        "load_sound": "load_sound :: (filename: u32) -> Sound ---",
        "play_sound": "play_sound :: (sound: Sound, loop: bool) -> void ---",
        "stop_sound": "stop_sound :: (sound: Sound) -> void ---",
        "unload_sound": "unload_sound :: (sound: Sound) -> void ---",
        "tts_sound": "tts_sound :: (text: u32, phonetic: bool, pitch: i32, speed: i32, throat: i32, mouth: i32, sing: bool) -> Sound ---",
        "sfx_sound": "sfx_sound :: (params: u32) -> Sound ---",
        "sfx_generate": "sfx_generate :: (type: i32) -> u32 ---",
        "load_tilemap": "load_tilemap :: (filename: u32) -> Tilemap ---",
        "unload_tilemap": "unload_tilemap :: (tilemap: Tilemap) -> void ---",
        "tile_update": "tile_update :: (tilemap: Tilemap, deltaTime: f32) -> void ---",
        "tile_map_size": "tile_map_size :: (tilemap: Tilemap) -> u32 ---",
        "tile_tile_size": "tile_tile_size :: (tilemap: Tilemap) -> u32 ---",
        "tile_map_prop": "tile_map_prop :: (tilemap: Tilemap, name: u32) -> u32 ---",
        "tile_map_prop_count": "tile_map_prop_count :: (tilemap: Tilemap) -> i32 ---",
        "tile_map_prop_at": "tile_map_prop_at :: (tilemap: Tilemap, index: i32) -> u32 ---",
        "tile_draw": "tile_draw :: (tilemap: Tilemap, posX: i32, posY: i32) -> void ---",
        "tile_draw_tint": "tile_draw_tint :: (tilemap: Tilemap, posX: i32, posY: i32, tint: Color) -> void ---",
        "tile_draw_on_image": "tile_draw_on_image :: (dst: Image, tilemap: Tilemap, posX: i32, posY: i32) -> void ---",
        "tilemap_image": "tilemap_image :: (tilemap: Tilemap) -> Image ---",
        "tile_layer_count": "tile_layer_count :: (tilemap: Tilemap) -> i32 ---",
        "tile_layer_index": "tile_layer_index :: (tilemap: Tilemap, name: u32) -> i32 ---",
        "tile_layer_name": "tile_layer_name :: (tilemap: Tilemap, layer: i32) -> u32 ---",
        "tile_layer_type": "tile_layer_type :: (tilemap: Tilemap, layer: i32) -> i32 ---",
        "tile_layer_size": "tile_layer_size :: (tilemap: Tilemap, layer: i32) -> u32 ---",
        "tile_layer_visible": "tile_layer_visible :: (tilemap: Tilemap, layer: i32) -> bool ---",
        "tile_layer_prop": "tile_layer_prop :: (tilemap: Tilemap, layer: i32, name: u32) -> u32 ---",
        "tile_layer_prop_count": "tile_layer_prop_count :: (tilemap: Tilemap, layer: i32) -> i32 ---",
        "tile_layer_prop_at": "tile_layer_prop_at :: (tilemap: Tilemap, layer: i32, index: i32) -> u32 ---",
        "tile_draw_layer": "tile_draw_layer :: (tilemap: Tilemap, layer: i32, posX: i32, posY: i32) -> void ---",
        "tile_draw_layer_tint": "tile_draw_layer_tint :: (tilemap: Tilemap, layer: i32, posX: i32, posY: i32, tint: Color) -> void ---",
        "tile_draw_layer_on_image": "tile_draw_layer_on_image :: (dst: Image, tilemap: Tilemap, layer: i32, posX: i32, posY: i32) -> void ---",
        "tile_layer_image": "tile_layer_image :: (tilemap: Tilemap, layer: i32) -> Image ---",
        "tile_get_tile": "tile_get_tile :: (tilemap: Tilemap, layer: i32, column: i32, row: i32) -> i32 ---",
        "tile_set_tile": "tile_set_tile :: (tilemap: Tilemap, layer: i32, column: i32, row: i32, gid: i32) -> void ---",
        "tile_draw_tile": "tile_draw_tile :: (tilemap: Tilemap, gid: i32, posX: i32, posY: i32) -> void ---",
        "tile_image": "tile_image :: (tilemap: Tilemap, gid: i32) -> Image ---",
        "tile_gid_prop": "tile_gid_prop :: (tilemap: Tilemap, gid: i32, name: u32) -> u32 ---",
        "tile_gid_prop_count": "tile_gid_prop_count :: (tilemap: Tilemap, gid: i32) -> i32 ---",
        "tile_gid_prop_at": "tile_gid_prop_at :: (tilemap: Tilemap, gid: i32, index: i32) -> u32 ---",
        "tile_object_count": "tile_object_count :: (tilemap: Tilemap, layer: i32) -> i32 ---",
        "tile_object": "tile_object :: (tilemap: Tilemap, layer: i32, index: i32) -> u32 ---",
        "tile_object_index": "tile_object_index :: (tilemap: Tilemap, layer: i32, name: u32) -> i32 ---",
        "tile_object_prop": "tile_object_prop :: (tilemap: Tilemap, layer: i32, index: i32, name: u32) -> u32 ---",
        "tile_object_prop_count": "tile_object_prop_count :: (tilemap: Tilemap, layer: i32, index: i32) -> i32 ---",
        "tile_object_prop_at": "tile_object_prop_at :: (tilemap: Tilemap, layer: i32, index: i32, propIndex: i32) -> u32 ---",
        "current_time": "current_time :: () -> u64 ---",
        "delta_time": "delta_time :: () -> f32 ---",
        "random_int": "random_int :: (min: i32, max: i32) -> i32 ---",
        "random_seed_get": "random_seed_get :: () -> u64 ---",
        "random_seed_set": "random_seed_set :: (seed: u64) -> void ---"
      }
    },
    "grain": {
      "id": "grain",
      "binding": "carts/grain/null0.gr",
      "example": "carts/grain/simple",
      "title": "Grain",
      "image": "grain",
      "kind": "compiled",
      "file": "main.gr",
      "highlight": "rust",
      "callback": "provide let load = () => { void }",
      "toolchain": "grain",
      "amd64Only": true,
      "notes": [
        "`from \"./null0.gr\" include Null0`.",
        "Numbers cross the boundary as raw wasm values, so they are written `100n`, not `100`.",
        "Call `Null0.initColors()` first thing in `load()`, then `Null0.blue` and friends work."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-grain:latest",
      "decls": {
        "color_tint": "provide foreign wasm color_tint: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "color_fade": "provide foreign wasm color_fade: (WasmI32, WasmF32) => WasmI32 from \"null0\"",
        "color_brightness": "provide foreign wasm color_brightness: (WasmI32, WasmF32) => WasmI32 from \"null0\"",
        "color_invert": "provide foreign wasm color_invert: (WasmI32) => WasmI32 from \"null0\"",
        "color_alpha_blend": "provide foreign wasm color_alpha_blend: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "color_contrast": "provide foreign wasm color_contrast: (WasmI32, WasmF32) => WasmI32 from \"null0\"",
        "color_bilinear_interpolate": "provide foreign wasm color_bilinear_interpolate: (WasmI32, WasmI32, WasmI32, WasmI32, WasmF32, WasmF32) => WasmI32 from \"null0\"",
        "new_image": "provide foreign wasm new_image: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "image_copy": "provide foreign wasm image_copy: (WasmI32) => WasmI32 from \"null0\"",
        "image_subimage": "provide foreign wasm image_subimage: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "clear": "provide foreign wasm clear: (WasmI32) => Void from \"null0\"",
        "draw_point": "provide foreign wasm draw_point: (WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_line": "provide foreign wasm draw_line: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_rectangle": "provide foreign wasm draw_rectangle: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_triangle": "provide foreign wasm draw_triangle: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_ellipse": "provide foreign wasm draw_ellipse: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_circle": "provide foreign wasm draw_circle: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_polygon": "provide foreign wasm draw_polygon: (WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_arc": "provide foreign wasm draw_arc: (WasmI32, WasmI32, WasmF32, WasmF32, WasmF32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_rectangle_rounded": "provide foreign wasm draw_rectangle_rounded: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_image": "provide foreign wasm draw_image: (WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_image_tint": "provide foreign wasm draw_image_tint: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_image_rotated": "provide foreign wasm draw_image_rotated: (WasmI32, WasmI32, WasmI32, WasmF32, WasmF32, WasmF32, WasmI32) => Void from \"null0\"",
        "draw_image_flipped": "provide foreign wasm draw_image_flipped: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_image_scaled": "provide foreign wasm draw_image_scaled: (WasmI32, WasmI32, WasmI32, WasmF32, WasmF32, WasmF32, WasmF32, WasmI32) => Void from \"null0\"",
        "draw_text": "provide foreign wasm draw_text: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "save_image": "provide foreign wasm save_image: (WasmI32, WasmI32) => Void from \"null0\"",
        "load_image": "provide foreign wasm load_image: (WasmI32) => WasmI32 from \"null0\"",
        "image_resize": "provide foreign wasm image_resize: (WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "image_scale": "provide foreign wasm image_scale: (WasmI32, WasmF32, WasmF32, WasmI32) => WasmI32 from \"null0\"",
        "image_color_replace": "provide foreign wasm image_color_replace: (WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "image_color_tint": "provide foreign wasm image_color_tint: (WasmI32, WasmI32) => Void from \"null0\"",
        "image_color_fade": "provide foreign wasm image_color_fade: (WasmI32, WasmF32) => Void from \"null0\"",
        "font_copy": "provide foreign wasm font_copy: (WasmI32) => WasmI32 from \"null0\"",
        "font_scale": "provide foreign wasm font_scale: (WasmI32, WasmF32, WasmF32, WasmI32) => WasmI32 from \"null0\"",
        "load_font_bmf": "provide foreign wasm load_font_bmf: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "load_font_bmf_from_image": "provide foreign wasm load_font_bmf_from_image: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "measure_text": "provide foreign wasm measure_text: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "measure_image": "provide foreign wasm measure_image: (WasmI32) => WasmI32 from \"null0\"",
        "load_font_tty": "provide foreign wasm load_font_tty: (WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "load_font_tty_from_image": "provide foreign wasm load_font_tty_from_image: (WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "load_font_ttf": "provide foreign wasm load_font_ttf: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "image_color_invert": "provide foreign wasm image_color_invert: (WasmI32) => Void from \"null0\"",
        "image_alpha_border": "provide foreign wasm image_alpha_border: (WasmI32, WasmF32) => WasmI32 from \"null0\"",
        "image_crop": "provide foreign wasm image_crop: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "image_alpha_crop": "provide foreign wasm image_alpha_crop: (WasmI32, WasmF32) => Void from \"null0\"",
        "image_color_brightness": "provide foreign wasm image_color_brightness: (WasmI32, WasmF32) => Void from \"null0\"",
        "image_flip": "provide foreign wasm image_flip: (WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "image_color_contrast": "provide foreign wasm image_color_contrast: (WasmI32, WasmF32) => Void from \"null0\"",
        "image_alpha_mask": "provide foreign wasm image_alpha_mask: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "image_rotate": "provide foreign wasm image_rotate: (WasmI32, WasmF32, WasmI32) => WasmI32 from \"null0\"",
        "image_gradient": "provide foreign wasm image_gradient: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "unload_image": "provide foreign wasm unload_image: (WasmI32) => Void from \"null0\"",
        "unload_font": "provide foreign wasm unload_font: (WasmI32) => Void from \"null0\"",
        "clear_image": "provide foreign wasm clear_image: (WasmI32, WasmI32) => Void from \"null0\"",
        "draw_point_on_image": "provide foreign wasm draw_point_on_image: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_line_on_image": "provide foreign wasm draw_line_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_rectangle_on_image": "provide foreign wasm draw_rectangle_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_triangle_on_image": "provide foreign wasm draw_triangle_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_ellipse_on_image": "provide foreign wasm draw_ellipse_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_circle_on_image": "provide foreign wasm draw_circle_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_polygon_on_image": "provide foreign wasm draw_polygon_on_image: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_rectangle_rounded_on_image": "provide foreign wasm draw_rectangle_rounded_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_image_on_image": "provide foreign wasm draw_image_on_image: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_image_tint_on_image": "provide foreign wasm draw_image_tint_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_image_rotated_on_image": "provide foreign wasm draw_image_rotated_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmF32, WasmF32, WasmF32, WasmI32) => Void from \"null0\"",
        "draw_image_flipped_on_image": "provide foreign wasm draw_image_flipped_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_image_scaled_on_image": "provide foreign wasm draw_image_scaled_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmF32, WasmF32, WasmF32, WasmF32, WasmI32) => Void from \"null0\"",
        "draw_text_on_image": "provide foreign wasm draw_text_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_rectangle_outline": "provide foreign wasm draw_rectangle_outline: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_triangle_outline": "provide foreign wasm draw_triangle_outline: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_ellipse_outline": "provide foreign wasm draw_ellipse_outline: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_circle_outline": "provide foreign wasm draw_circle_outline: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_polygon_outline": "provide foreign wasm draw_polygon_outline: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_arc_outline": "provide foreign wasm draw_arc_outline: (WasmI32, WasmI32, WasmF32, WasmF32, WasmF32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_rectangle_rounded_outline": "provide foreign wasm draw_rectangle_rounded_outline: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_rectangle_outline_on_image": "provide foreign wasm draw_rectangle_outline_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_triangle_outline_on_image": "provide foreign wasm draw_triangle_outline_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_ellipse_outline_on_image": "provide foreign wasm draw_ellipse_outline_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_circle_outline_on_image": "provide foreign wasm draw_circle_outline_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_polygon_outline_on_image": "provide foreign wasm draw_polygon_outline_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "draw_rectangle_rounded_outline_on_image": "provide foreign wasm draw_rectangle_rounded_outline_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "gui_begin_window": "provide foreign wasm gui_begin_window: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "gui_end_window": "provide foreign wasm gui_end_window: () => Void from \"null0\"",
        "gui_button": "provide foreign wasm gui_button: (WasmI32) => WasmI32 from \"null0\"",
        "gui_label": "provide foreign wasm gui_label: (WasmI32) => Void from \"null0\"",
        "gui_text": "provide foreign wasm gui_text: (WasmI32) => Void from \"null0\"",
        "gui_checkbox": "provide foreign wasm gui_checkbox: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "gui_slider": "provide foreign wasm gui_slider: (WasmF32, WasmF32, WasmF32) => WasmF32 from \"null0\"",
        "gui_layout_row": "provide foreign wasm gui_layout_row: (WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "gui_end": "provide foreign wasm gui_end: () => Void from \"null0\"",
        "gui_draw": "provide foreign wasm gui_draw: (WasmI32) => Void from \"null0\"",
        "key_pressed": "provide foreign wasm key_pressed: (WasmI32) => WasmI32 from \"null0\"",
        "key_down": "provide foreign wasm key_down: (WasmI32) => WasmI32 from \"null0\"",
        "key_released": "provide foreign wasm key_released: (WasmI32) => WasmI32 from \"null0\"",
        "key_up": "provide foreign wasm key_up: (WasmI32) => WasmI32 from \"null0\"",
        "gamepad_button_pressed": "provide foreign wasm gamepad_button_pressed: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "gamepad_button_down": "provide foreign wasm gamepad_button_down: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "gamepad_button_released": "provide foreign wasm gamepad_button_released: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "mouse_position": "provide foreign wasm mouse_position: () => WasmI32 from \"null0\"",
        "mouse_button_pressed": "provide foreign wasm mouse_button_pressed: (WasmI32) => WasmI32 from \"null0\"",
        "mouse_button_down": "provide foreign wasm mouse_button_down: (WasmI32) => WasmI32 from \"null0\"",
        "mouse_button_released": "provide foreign wasm mouse_button_released: (WasmI32) => WasmI32 from \"null0\"",
        "mouse_button_up": "provide foreign wasm mouse_button_up: (WasmI32) => WasmI32 from \"null0\"",
        "load_sound": "provide foreign wasm load_sound: (WasmI32) => WasmI32 from \"null0\"",
        "play_sound": "provide foreign wasm play_sound: (WasmI32, WasmI32) => Void from \"null0\"",
        "stop_sound": "provide foreign wasm stop_sound: (WasmI32) => Void from \"null0\"",
        "unload_sound": "provide foreign wasm unload_sound: (WasmI32) => Void from \"null0\"",
        "tts_sound": "provide foreign wasm tts_sound: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "sfx_sound": "provide foreign wasm sfx_sound: (WasmI32) => WasmI32 from \"null0\"",
        "sfx_generate": "provide foreign wasm sfx_generate: (WasmI32) => WasmI32 from \"null0\"",
        "load_tilemap": "provide foreign wasm load_tilemap: (WasmI32) => WasmI32 from \"null0\"",
        "unload_tilemap": "provide foreign wasm unload_tilemap: (WasmI32) => Void from \"null0\"",
        "tile_update": "provide foreign wasm tile_update: (WasmI32, WasmF32) => Void from \"null0\"",
        "tile_map_size": "provide foreign wasm tile_map_size: (WasmI32) => WasmI32 from \"null0\"",
        "tile_tile_size": "provide foreign wasm tile_tile_size: (WasmI32) => WasmI32 from \"null0\"",
        "tile_map_prop": "provide foreign wasm tile_map_prop: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_map_prop_count": "provide foreign wasm tile_map_prop_count: (WasmI32) => WasmI32 from \"null0\"",
        "tile_map_prop_at": "provide foreign wasm tile_map_prop_at: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_draw": "provide foreign wasm tile_draw: (WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "tile_draw_tint": "provide foreign wasm tile_draw_tint: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "tile_draw_on_image": "provide foreign wasm tile_draw_on_image: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "tilemap_image": "provide foreign wasm tilemap_image: (WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_count": "provide foreign wasm tile_layer_count: (WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_index": "provide foreign wasm tile_layer_index: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_name": "provide foreign wasm tile_layer_name: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_type": "provide foreign wasm tile_layer_type: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_size": "provide foreign wasm tile_layer_size: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_visible": "provide foreign wasm tile_layer_visible: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_prop": "provide foreign wasm tile_layer_prop: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_prop_count": "provide foreign wasm tile_layer_prop_count: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_layer_prop_at": "provide foreign wasm tile_layer_prop_at: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_draw_layer": "provide foreign wasm tile_draw_layer: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "tile_draw_layer_tint": "provide foreign wasm tile_draw_layer_tint: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "tile_draw_layer_on_image": "provide foreign wasm tile_draw_layer_on_image: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "tile_layer_image": "provide foreign wasm tile_layer_image: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_get_tile": "provide foreign wasm tile_get_tile: (WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_set_tile": "provide foreign wasm tile_set_tile: (WasmI32, WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "tile_draw_tile": "provide foreign wasm tile_draw_tile: (WasmI32, WasmI32, WasmI32, WasmI32) => Void from \"null0\"",
        "tile_image": "provide foreign wasm tile_image: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_gid_prop": "provide foreign wasm tile_gid_prop: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_gid_prop_count": "provide foreign wasm tile_gid_prop_count: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_gid_prop_at": "provide foreign wasm tile_gid_prop_at: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_object_count": "provide foreign wasm tile_object_count: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_object": "provide foreign wasm tile_object: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_object_index": "provide foreign wasm tile_object_index: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_object_prop": "provide foreign wasm tile_object_prop: (WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_object_prop_count": "provide foreign wasm tile_object_prop_count: (WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "tile_object_prop_at": "provide foreign wasm tile_object_prop_at: (WasmI32, WasmI32, WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "current_time": "provide foreign wasm current_time: () => WasmI64 from \"null0\"",
        "delta_time": "provide foreign wasm delta_time: () => WasmF32 from \"null0\"",
        "random_int": "provide foreign wasm random_int: (WasmI32, WasmI32) => WasmI32 from \"null0\"",
        "random_seed_get": "provide foreign wasm random_seed_get: () => WasmI64 from \"null0\"",
        "random_seed_set": "provide foreign wasm random_seed_set: (WasmI64) => Void from \"null0\""
      }
    },
    "haxe": {
      "id": "haxe",
      "binding": "carts/haxe/Null0.hx",
      "example": "carts/haxe/simple",
      "title": "Haxe",
      "image": "haxe",
      "kind": "compiled",
      "file": "Main.hx",
      "highlight": "haxe",
      "callback": "Null0.onUpdate = () -> {}",
      "toolchain": "haxe, HL/C + wasi-sdk",
      "amd64Only": true,
      "notes": [
        "Callbacks are closures you assign (`Null0.onUpdate = ...`), not exports.",
        "No `try`/`catch`: wasm exception-handling is not available in the host interpreter."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-haxe:latest",
      "decls": {
        "color_tint": "public static function colorTint(color:Color, tint:Color):Color",
        "color_fade": "public static function colorFade(color:Color, alpha:Single):Color",
        "color_brightness": "public static function colorBrightness(color:Color, factor:Single):Color",
        "color_invert": "public static function colorInvert(color:Color):Color",
        "color_alpha_blend": "public static function colorAlphaBlend(dst:Color, src:Color):Color",
        "color_contrast": "public static function colorContrast(color:Color, contrast:Single):Color",
        "color_bilinear_interpolate": "public static function colorBilinearInterpolate(color00:Color, color01:Color, color10:Color, color11:Color, coordinateX:Single, coordinateY:Single):Color",
        "new_image": "public static function newImage(width:Int, height:Int, color:Color):Image",
        "image_copy": "public static function imageCopy(image:Image):Image",
        "image_subimage": "public static function imageSubimage(image:Image, x:Int, y:Int, width:Int, height:Int):Image",
        "clear": "public static function clear(color:Color):Void",
        "draw_point": "public static function drawPoint(x:Int, y:Int, color:Color):Void",
        "draw_line": "public static function drawLine(startPosX:Int, startPosY:Int, endPosX:Int, endPosY:Int, color:Color):Void",
        "draw_rectangle": "public static function drawRectangle(posX:Int, posY:Int, width:Int, height:Int, color:Color):Void",
        "draw_triangle": "public static function drawTriangle(x1:Int, y1:Int, x2:Int, y2:Int, x3:Int, y3:Int, color:Color):Void",
        "draw_ellipse": "public static function drawEllipse(centerX:Int, centerY:Int, radiusX:Int, radiusY:Int, color:Color):Void",
        "draw_circle": "public static function drawCircle(centerX:Int, centerY:Int, radius:Int, color:Color):Void",
        "draw_polygon": "static function _drawPolygon(points:Array<Vector>, color:Color):Void",
        "draw_arc": "public static function drawArc(centerX:Int, centerY:Int, radius:Single, startAngle:Single, endAngle:Single, segments:Int, color:Color):Void",
        "draw_rectangle_rounded": "public static function drawRectangleRounded(x:Int, y:Int, width:Int, height:Int, cornerRadius:Int, color:Color):Void",
        "draw_image": "public static function drawImage(src:Image, posX:Int, posY:Int):Void",
        "draw_image_tint": "public static function drawImageTint(src:Image, posX:Int, posY:Int, tint:Color):Void",
        "draw_image_rotated": "public static function drawImageRotated(src:Image, posX:Int, posY:Int, degrees:Single, offsetX:Single, offsetY:Single, filter:ImageFilter):Void",
        "draw_image_flipped": "public static function drawImageFlipped(src:Image, posX:Int, posY:Int, flipHorizontal:Bool, flipVertical:Bool, flipDiagonal:Bool):Void",
        "draw_image_scaled": "public static function drawImageScaled(src:Image, posX:Int, posY:Int, scaleX:Single, scaleY:Single, offsetX:Single, offsetY:Single, filter:ImageFilter):Void",
        "draw_text": "public static function drawText(font:Font, text:String, posX:Int, posY:Int, color:Color):Void",
        "save_image": "public static function saveImage(image:Image, filename:String):Void",
        "load_image": "public static function loadImage(filename:String):Image",
        "image_resize": "public static function imageResize(image:Image, newWidth:Int, newHeight:Int, filter:ImageFilter):Image",
        "image_scale": "public static function imageScale(image:Image, scaleX:Single, scaleY:Single, filter:ImageFilter):Image",
        "image_color_replace": "public static function imageColorReplace(image:Image, color:Color, replace:Color):Void",
        "image_color_tint": "public static function imageColorTint(image:Image, color:Color):Void",
        "image_color_fade": "public static function imageColorFade(image:Image, alpha:Single):Void",
        "font_copy": "public static function fontCopy(font:Font):Font",
        "font_scale": "public static function fontScale(font:Font, scaleX:Single, scaleY:Single, filter:ImageFilter):Font",
        "load_font_bmf": "public static function loadFontBmf(filename:String, characters:String):Font",
        "load_font_bmf_from_image": "public static function loadFontBmfFromImage(image:Image, characters:String):Font",
        "measure_text": "static function _measureText(font:Font, text:String, textLength:Int):Dimensions",
        "measure_image": "public static function measureImage(image:Image):Dimensions",
        "load_font_tty": "public static function loadFontTty(filename:String, glyphWidth:Int, glyphHeight:Int, characters:String):Font",
        "load_font_tty_from_image": "public static function loadFontTtyFromImage(image:Image, glyphWidth:Int, glyphHeight:Int, characters:String):Font",
        "load_font_ttf": "public static function loadFontTtf(filename:String, fontSize:Int):Font",
        "image_color_invert": "public static function imageColorInvert(image:Image):Void",
        "image_alpha_border": "public static function imageAlphaBorder(image:Image, threshold:Single):Rectangle",
        "image_crop": "public static function imageCrop(image:Image, x:Int, y:Int, width:Int, height:Int):Void",
        "image_alpha_crop": "public static function imageAlphaCrop(image:Image, threshold:Single):Void",
        "image_color_brightness": "public static function imageColorBrightness(image:Image, factor:Single):Void",
        "image_flip": "public static function imageFlip(image:Image, horizontal:Bool, vertical:Bool):Void",
        "image_color_contrast": "public static function imageColorContrast(image:Image, contrast:Single):Void",
        "image_alpha_mask": "public static function imageAlphaMask(image:Image, alphaMask:Image, posX:Int, posY:Int):Void",
        "image_rotate": "public static function imageRotate(image:Image, degrees:Single, filter:ImageFilter):Image",
        "image_gradient": "public static function imageGradient(width:Int, height:Int, topLeft:Color, topRight:Color, bottomLeft:Color, bottomRight:Color):Image",
        "unload_image": "public static function unloadImage(image:Image):Void",
        "unload_font": "public static function unloadFont(font:Font):Void",
        "clear_image": "public static function clearImage(destination:Image, color:Color):Void",
        "draw_point_on_image": "public static function drawPointOnImage(destination:Image, x:Int, y:Int, color:Color):Void",
        "draw_line_on_image": "public static function drawLineOnImage(destination:Image, startPosX:Int, startPosY:Int, endPosX:Int, endPosY:Int, color:Color):Void",
        "draw_rectangle_on_image": "public static function drawRectangleOnImage(destination:Image, posX:Int, posY:Int, width:Int, height:Int, color:Color):Void",
        "draw_triangle_on_image": "public static function drawTriangleOnImage(destination:Image, x1:Int, y1:Int, x2:Int, y2:Int, x3:Int, y3:Int, color:Color):Void",
        "draw_ellipse_on_image": "public static function drawEllipseOnImage(destination:Image, centerX:Int, centerY:Int, radiusX:Int, radiusY:Int, color:Color):Void",
        "draw_circle_on_image": "public static function drawCircleOnImage(destination:Image, centerX:Int, centerY:Int, radius:Int, color:Color):Void",
        "draw_polygon_on_image": "static function _drawPolygonOnImage(destination:Image, points:Array<Vector>, color:Color):Void",
        "draw_rectangle_rounded_on_image": "public static function drawRectangleRoundedOnImage(destination:Image, x:Int, y:Int, width:Int, height:Int, cornerRadius:Int, color:Color):Void",
        "draw_image_on_image": "public static function drawImageOnImage(destination:Image, src:Image, posX:Int, posY:Int):Void",
        "draw_image_tint_on_image": "public static function drawImageTintOnImage(destination:Image, src:Image, posX:Int, posY:Int, tint:Color):Void",
        "draw_image_rotated_on_image": "public static function drawImageRotatedOnImage(destination:Image, src:Image, posX:Int, posY:Int, degrees:Single, offsetX:Single, offsetY:Single, filter:ImageFilter):Void",
        "draw_image_flipped_on_image": "public static function drawImageFlippedOnImage(destination:Image, src:Image, posX:Int, posY:Int, flipHorizontal:Bool, flipVertical:Bool, flipDiagonal:Bool):Void",
        "draw_image_scaled_on_image": "public static function drawImageScaledOnImage(destination:Image, src:Image, posX:Int, posY:Int, scaleX:Single, scaleY:Single, offsetX:Single, offsetY:Single, filter:ImageFilter):Void",
        "draw_text_on_image": "public static function drawTextOnImage(destination:Image, font:Font, text:String, posX:Int, posY:Int, color:Color):Void",
        "draw_rectangle_outline": "public static function drawRectangleOutline(posX:Int, posY:Int, width:Int, height:Int, thickness:Int, color:Color):Void",
        "draw_triangle_outline": "public static function drawTriangleOutline(x1:Int, y1:Int, x2:Int, y2:Int, x3:Int, y3:Int, thickness:Int, color:Color):Void",
        "draw_ellipse_outline": "public static function drawEllipseOutline(centerX:Int, centerY:Int, radiusX:Int, radiusY:Int, thickness:Int, color:Color):Void",
        "draw_circle_outline": "public static function drawCircleOutline(centerX:Int, centerY:Int, radius:Int, thickness:Int, color:Color):Void",
        "draw_polygon_outline": "static function _drawPolygonOutline(points:Array<Vector>, thickness:Int, color:Color):Void",
        "draw_arc_outline": "public static function drawArcOutline(centerX:Int, centerY:Int, radius:Single, startAngle:Single, endAngle:Single, segments:Int, thickness:Int, color:Color):Void",
        "draw_rectangle_rounded_outline": "public static function drawRectangleRoundedOutline(x:Int, y:Int, width:Int, height:Int, cornerRadius:Int, thickness:Int, color:Color):Void",
        "draw_rectangle_outline_on_image": "public static function drawRectangleOutlineOnImage(destination:Image, posX:Int, posY:Int, width:Int, height:Int, thickness:Int, color:Color):Void",
        "draw_triangle_outline_on_image": "public static function drawTriangleOutlineOnImage(destination:Image, x1:Int, y1:Int, x2:Int, y2:Int, x3:Int, y3:Int, thickness:Int, color:Color):Void",
        "draw_ellipse_outline_on_image": "public static function drawEllipseOutlineOnImage(destination:Image, centerX:Int, centerY:Int, radiusX:Int, radiusY:Int, thickness:Int, color:Color):Void",
        "draw_circle_outline_on_image": "public static function drawCircleOutlineOnImage(destination:Image, centerX:Int, centerY:Int, radius:Int, thickness:Int, color:Color):Void",
        "draw_polygon_outline_on_image": "static function _drawPolygonOutlineOnImage(destination:Image, points:Array<Vector>, thickness:Int, color:Color):Void",
        "draw_rectangle_rounded_outline_on_image": "public static function drawRectangleRoundedOutlineOnImage(destination:Image, x:Int, y:Int, width:Int, height:Int, cornerRadius:Int, thickness:Int, color:Color):Void",
        "gui_begin_window": "public static function guiBeginWindow(title:String, rect:Rectangle):Bool",
        "gui_end_window": "public static function guiEndWindow():Void",
        "gui_button": "public static function guiButton(label:String):Bool",
        "gui_label": "public static function guiLabel(text:String):Void",
        "gui_text": "public static function guiText(text:String):Void",
        "gui_checkbox": "public static function guiCheckbox(label:String, state:Bool):Bool",
        "gui_slider": "public static function guiSlider(value:Single, low:Single, high:Single):Single",
        "gui_layout_row": "static function _guiLayoutRow(widths:Array<Int>, height:Int):Void",
        "gui_end": "public static function guiEnd():Void",
        "gui_draw": "public static function guiDraw(dst:Image):Void",
        "key_pressed": "public static function keyPressed(key:Key):Bool",
        "key_down": "public static function keyDown(key:Key):Bool",
        "key_released": "public static function keyReleased(key:Key):Bool",
        "key_up": "public static function keyUp(key:Key):Bool",
        "gamepad_button_pressed": "public static function gamepadButtonPressed(gamepad:Int, button:GamepadButton):Bool",
        "gamepad_button_down": "public static function gamepadButtonDown(gamepad:Int, button:GamepadButton):Bool",
        "gamepad_button_released": "public static function gamepadButtonReleased(gamepad:Int, button:GamepadButton):Bool",
        "mouse_position": "public static function mousePosition():Vector",
        "mouse_button_pressed": "public static function mouseButtonPressed(button:MouseButton):Bool",
        "mouse_button_down": "public static function mouseButtonDown(button:MouseButton):Bool",
        "mouse_button_released": "public static function mouseButtonReleased(button:MouseButton):Bool",
        "mouse_button_up": "public static function mouseButtonUp(button:MouseButton):Bool",
        "load_sound": "public static function loadSound(filename:String):Sound",
        "play_sound": "public static function playSound(sound:Sound, loop:Bool):Void",
        "stop_sound": "public static function stopSound(sound:Sound):Void",
        "unload_sound": "public static function unloadSound(sound:Sound):Void",
        "tts_sound": "public static function ttsSound(text:String, phonetic:Bool, pitch:Int, speed:Int, throat:Int, mouth:Int, sing:Bool):Sound",
        "sfx_sound": "public static function sfxSound(params:SfxParams):Sound",
        "sfx_generate": "public static function sfxGenerate(type:SfxPresetType):SfxParams",
        "load_tilemap": "public static function loadTilemap(filename:String):Tilemap",
        "unload_tilemap": "public static function unloadTilemap(tilemap:Tilemap):Void",
        "tile_update": "public static function tileUpdate(tilemap:Tilemap, deltaTime:Single):Void",
        "tile_map_size": "public static function tileMapSize(tilemap:Tilemap):Dimensions",
        "tile_tile_size": "public static function tileTileSize(tilemap:Tilemap):Dimensions",
        "tile_map_prop": "public static function tileMapProp(tilemap:Tilemap, name:String):TilemapProp",
        "tile_map_prop_count": "public static function tileMapPropCount(tilemap:Tilemap):Int",
        "tile_map_prop_at": "public static function tileMapPropAt(tilemap:Tilemap, index:Int):TilemapProp",
        "tile_draw": "public static function tileDraw(tilemap:Tilemap, posX:Int, posY:Int):Void",
        "tile_draw_tint": "public static function tileDrawTint(tilemap:Tilemap, posX:Int, posY:Int, tint:Color):Void",
        "tile_draw_on_image": "public static function tileDrawOnImage(dst:Image, tilemap:Tilemap, posX:Int, posY:Int):Void",
        "tilemap_image": "public static function tilemapImage(tilemap:Tilemap):Image",
        "tile_layer_count": "public static function tileLayerCount(tilemap:Tilemap):Int",
        "tile_layer_index": "public static function tileLayerIndex(tilemap:Tilemap, name:String):Int",
        "tile_layer_name": "static function _tileLayerName(tilemap:Tilemap, layer:Int):hl.Bytes",
        "tile_layer_type": "public static function tileLayerType(tilemap:Tilemap, layer:Int):TileLayerKind",
        "tile_layer_size": "public static function tileLayerSize(tilemap:Tilemap, layer:Int):Dimensions",
        "tile_layer_visible": "public static function tileLayerVisible(tilemap:Tilemap, layer:Int):Bool",
        "tile_layer_prop": "public static function tileLayerProp(tilemap:Tilemap, layer:Int, name:String):TilemapProp",
        "tile_layer_prop_count": "public static function tileLayerPropCount(tilemap:Tilemap, layer:Int):Int",
        "tile_layer_prop_at": "public static function tileLayerPropAt(tilemap:Tilemap, layer:Int, index:Int):TilemapProp",
        "tile_draw_layer": "public static function tileDrawLayer(tilemap:Tilemap, layer:Int, posX:Int, posY:Int):Void",
        "tile_draw_layer_tint": "public static function tileDrawLayerTint(tilemap:Tilemap, layer:Int, posX:Int, posY:Int, tint:Color):Void",
        "tile_draw_layer_on_image": "public static function tileDrawLayerOnImage(dst:Image, tilemap:Tilemap, layer:Int, posX:Int, posY:Int):Void",
        "tile_layer_image": "public static function tileLayerImage(tilemap:Tilemap, layer:Int):Image",
        "tile_get_tile": "public static function tileGetTile(tilemap:Tilemap, layer:Int, column:Int, row:Int):Int",
        "tile_set_tile": "public static function tileSetTile(tilemap:Tilemap, layer:Int, column:Int, row:Int, gid:Int):Void",
        "tile_draw_tile": "public static function tileDrawTile(tilemap:Tilemap, gid:Int, posX:Int, posY:Int):Void",
        "tile_image": "public static function tileImage(tilemap:Tilemap, gid:Int):Image",
        "tile_gid_prop": "public static function tileGidProp(tilemap:Tilemap, gid:Int, name:String):TilemapProp",
        "tile_gid_prop_count": "public static function tileGidPropCount(tilemap:Tilemap, gid:Int):Int",
        "tile_gid_prop_at": "public static function tileGidPropAt(tilemap:Tilemap, gid:Int, index:Int):TilemapProp",
        "tile_object_count": "public static function tileObjectCount(tilemap:Tilemap, layer:Int):Int",
        "tile_object": "public static function tileObject(tilemap:Tilemap, layer:Int, index:Int):TilemapObject",
        "tile_object_index": "public static function tileObjectIndex(tilemap:Tilemap, layer:Int, name:String):Int",
        "tile_object_prop": "public static function tileObjectProp(tilemap:Tilemap, layer:Int, index:Int, name:String):TilemapProp",
        "tile_object_prop_count": "public static function tileObjectPropCount(tilemap:Tilemap, layer:Int, index:Int):Int",
        "tile_object_prop_at": "public static function tileObjectPropAt(tilemap:Tilemap, layer:Int, index:Int, propIndex:Int):TilemapProp",
        "current_time": "public static function currentTime():hl.I64",
        "delta_time": "public static function deltaTime():Single",
        "random_int": "public static function randomInt(min:Int, max:Int):Int",
        "random_seed_get": "public static function randomSeedGet():hl.I64",
        "random_seed_set": "public static function randomSeedSet(seed:hl.I64):Void"
      }
    },
    "haskell": {
      "id": "haskell",
      "binding": "carts/haskell/Null0.hs",
      "example": "carts/haskell/simple",
      "title": "Haskell",
      "image": "haskell",
      "kind": "compiled",
      "file": "Main.hs",
      "highlight": "haskell",
      "callback": "foreign export ccall update :: IO ()",
      "toolchain": "wasm32-wasi-ghc (reactor mode)",
      "notes": [
        "Everything is in `IO`. Each null0 call is imported through a generated C trampoline.",
        "Carts get no environment variables, so anything reading `$PWD` sees nothing."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-haskell:latest",
      "decls": {
        "color_tint": "colorTint :: Color -> Color -> IO Color",
        "color_fade": "colorFade :: Color -> CFloat -> IO Color",
        "color_brightness": "colorBrightness :: Color -> CFloat -> IO Color",
        "color_invert": "colorInvert :: Color -> IO Color",
        "color_alpha_blend": "colorAlphaBlend :: Color -> Color -> IO Color",
        "color_contrast": "colorContrast :: Color -> CFloat -> IO Color",
        "color_bilinear_interpolate": "colorBilinearInterpolate :: Color -> Color -> Color -> Color -> CFloat -> CFloat -> IO Color",
        "new_image": "newImage :: Int32 -> Int32 -> Color -> IO Word32",
        "image_copy": "imageCopy :: Word32 -> IO Word32",
        "image_subimage": "imageSubimage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO Word32",
        "clear": "clear :: Color -> IO ()",
        "draw_point": "drawPoint :: Int32 -> Int32 -> Color -> IO ()",
        "draw_line": "drawLine :: Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_rectangle": "drawRectangle :: Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_triangle": "drawTriangle :: Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_ellipse": "drawEllipse :: Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_circle": "drawCircle :: Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_polygon": "drawPolygon :: [Vector] -> Color -> IO ()",
        "draw_arc": "drawArc :: Int32 -> Int32 -> CFloat -> CFloat -> CFloat -> Int32 -> Color -> IO ()",
        "draw_rectangle_rounded": "drawRectangleRounded :: Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_image": "drawImage :: Word32 -> Int32 -> Int32 -> IO ()",
        "draw_image_tint": "drawImageTint :: Word32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_image_rotated": "drawImageRotated :: Word32 -> Int32 -> Int32 -> CFloat -> CFloat -> CFloat -> Int32 -> IO ()",
        "draw_image_flipped": "drawImageFlipped :: Word32 -> Int32 -> Int32 -> Bool -> Bool -> Bool -> IO ()",
        "draw_image_scaled": "drawImageScaled :: Word32 -> Int32 -> Int32 -> CFloat -> CFloat -> CFloat -> CFloat -> Int32 -> IO ()",
        "draw_text": "drawText :: Word32 -> String -> Int32 -> Int32 -> Color -> IO ()",
        "save_image": "saveImage :: Word32 -> String -> IO ()",
        "load_image": "loadImage :: String -> IO Word32",
        "image_resize": "imageResize :: Word32 -> Int32 -> Int32 -> Int32 -> IO Word32",
        "image_scale": "imageScale :: Word32 -> CFloat -> CFloat -> Int32 -> IO Word32",
        "image_color_replace": "imageColorReplace :: Word32 -> Color -> Color -> IO ()",
        "image_color_tint": "imageColorTint :: Word32 -> Color -> IO ()",
        "image_color_fade": "imageColorFade :: Word32 -> CFloat -> IO ()",
        "font_copy": "fontCopy :: Word32 -> IO Word32",
        "font_scale": "fontScale :: Word32 -> CFloat -> CFloat -> Int32 -> IO Word32",
        "load_font_bmf": "loadFontBmf :: String -> String -> IO Word32",
        "load_font_bmf_from_image": "loadFontBmfFromImage :: Word32 -> String -> IO Word32",
        "measure_text": "measureText :: Word32 -> String -> Int32 -> IO Dimensions",
        "measure_image": "measureImage :: Word32 -> IO Dimensions",
        "load_font_tty": "loadFontTty :: String -> Int32 -> Int32 -> String -> IO Word32",
        "load_font_tty_from_image": "loadFontTtyFromImage :: Word32 -> Int32 -> Int32 -> String -> IO Word32",
        "load_font_ttf": "loadFontTtf :: String -> Int32 -> IO Word32",
        "image_color_invert": "imageColorInvert :: Word32 -> IO ()",
        "image_alpha_border": "imageAlphaBorder :: Word32 -> CFloat -> IO Rectangle",
        "image_crop": "imageCrop :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO ()",
        "image_alpha_crop": "imageAlphaCrop :: Word32 -> CFloat -> IO ()",
        "image_color_brightness": "imageColorBrightness :: Word32 -> CFloat -> IO ()",
        "image_flip": "imageFlip :: Word32 -> Bool -> Bool -> IO ()",
        "image_color_contrast": "imageColorContrast :: Word32 -> CFloat -> IO ()",
        "image_alpha_mask": "imageAlphaMask :: Word32 -> Word32 -> Int32 -> Int32 -> IO ()",
        "image_rotate": "imageRotate :: Word32 -> CFloat -> Int32 -> IO Word32",
        "image_gradient": "imageGradient :: Int32 -> Int32 -> Color -> Color -> Color -> Color -> IO Word32",
        "unload_image": "unloadImage :: Word32 -> IO ()",
        "unload_font": "unloadFont :: Word32 -> IO ()",
        "clear_image": "clearImage :: Word32 -> Color -> IO ()",
        "draw_point_on_image": "drawPointOnImage :: Word32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_line_on_image": "drawLineOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_rectangle_on_image": "drawRectangleOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_triangle_on_image": "drawTriangleOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_ellipse_on_image": "drawEllipseOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_circle_on_image": "drawCircleOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_polygon_on_image": "drawPolygonOnImage :: Word32 -> [Vector] -> Color -> IO ()",
        "draw_rectangle_rounded_on_image": "drawRectangleRoundedOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_image_on_image": "drawImageOnImage :: Word32 -> Word32 -> Int32 -> Int32 -> IO ()",
        "draw_image_tint_on_image": "drawImageTintOnImage :: Word32 -> Word32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_image_rotated_on_image": "drawImageRotatedOnImage :: Word32 -> Word32 -> Int32 -> Int32 -> CFloat -> CFloat -> CFloat -> Int32 -> IO ()",
        "draw_image_flipped_on_image": "drawImageFlippedOnImage :: Word32 -> Word32 -> Int32 -> Int32 -> Bool -> Bool -> Bool -> IO ()",
        "draw_image_scaled_on_image": "drawImageScaledOnImage :: Word32 -> Word32 -> Int32 -> Int32 -> CFloat -> CFloat -> CFloat -> CFloat -> Int32 -> IO ()",
        "draw_text_on_image": "drawTextOnImage :: Word32 -> Word32 -> String -> Int32 -> Int32 -> Color -> IO ()",
        "draw_rectangle_outline": "drawRectangleOutline :: Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_triangle_outline": "drawTriangleOutline :: Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_ellipse_outline": "drawEllipseOutline :: Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_circle_outline": "drawCircleOutline :: Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_polygon_outline": "drawPolygonOutline :: [Vector] -> Int32 -> Color -> IO ()",
        "draw_arc_outline": "drawArcOutline :: Int32 -> Int32 -> CFloat -> CFloat -> CFloat -> Int32 -> Int32 -> Color -> IO ()",
        "draw_rectangle_rounded_outline": "drawRectangleRoundedOutline :: Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_rectangle_outline_on_image": "drawRectangleOutlineOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_triangle_outline_on_image": "drawTriangleOutlineOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_ellipse_outline_on_image": "drawEllipseOutlineOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_circle_outline_on_image": "drawCircleOutlineOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "draw_polygon_outline_on_image": "drawPolygonOutlineOnImage :: Word32 -> [Vector] -> Int32 -> Color -> IO ()",
        "draw_rectangle_rounded_outline_on_image": "drawRectangleRoundedOutlineOnImage :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "gui_begin_window": "guiBeginWindow :: String -> Rectangle -> IO Bool",
        "gui_end_window": "guiEndWindow :: IO ()",
        "gui_button": "guiButton :: String -> IO Bool",
        "gui_label": "guiLabel :: String -> IO ()",
        "gui_text": "guiText :: String -> IO ()",
        "gui_checkbox": "guiCheckbox :: String -> Bool -> IO Bool",
        "gui_slider": "guiSlider :: CFloat -> CFloat -> CFloat -> IO CFloat",
        "gui_layout_row": "guiLayoutRow :: [Int32] -> Int32 -> IO ()",
        "gui_end": "guiEnd :: IO ()",
        "gui_draw": "guiDraw :: Word32 -> IO ()",
        "key_pressed": "keyPressed :: Int32 -> IO Bool",
        "key_down": "keyDown :: Int32 -> IO Bool",
        "key_released": "keyReleased :: Int32 -> IO Bool",
        "key_up": "keyUp :: Int32 -> IO Bool",
        "gamepad_button_pressed": "gamepadButtonPressed :: Int32 -> Int32 -> IO Bool",
        "gamepad_button_down": "gamepadButtonDown :: Int32 -> Int32 -> IO Bool",
        "gamepad_button_released": "gamepadButtonReleased :: Int32 -> Int32 -> IO Bool",
        "mouse_position": "mousePosition :: IO Vector",
        "mouse_button_pressed": "mouseButtonPressed :: Int32 -> IO Bool",
        "mouse_button_down": "mouseButtonDown :: Int32 -> IO Bool",
        "mouse_button_released": "mouseButtonReleased :: Int32 -> IO Bool",
        "mouse_button_up": "mouseButtonUp :: Int32 -> IO Bool",
        "load_sound": "loadSound :: String -> IO Word32",
        "play_sound": "playSound :: Word32 -> Bool -> IO ()",
        "stop_sound": "stopSound :: Word32 -> IO ()",
        "unload_sound": "unloadSound :: Word32 -> IO ()",
        "tts_sound": "ttsSound :: String -> Bool -> Int32 -> Int32 -> Int32 -> Int32 -> Bool -> IO Word32",
        "sfx_sound": "sfxSound :: SfxParams -> IO Word32",
        "sfx_generate": "sfxGenerate :: Int32 -> IO SfxParams",
        "load_tilemap": "loadTilemap :: String -> IO Word32",
        "unload_tilemap": "unloadTilemap :: Word32 -> IO ()",
        "tile_update": "tileUpdate :: Word32 -> CFloat -> IO ()",
        "tile_map_size": "tileMapSize :: Word32 -> IO Dimensions",
        "tile_tile_size": "tileTileSize :: Word32 -> IO Dimensions",
        "tile_map_prop": "tileMapProp :: Word32 -> String -> IO TilemapProp",
        "tile_map_prop_count": "tileMapPropCount :: Word32 -> IO Int32",
        "tile_map_prop_at": "tileMapPropAt :: Word32 -> Int32 -> IO TilemapProp",
        "tile_draw": "tileDraw :: Word32 -> Int32 -> Int32 -> IO ()",
        "tile_draw_tint": "tileDrawTint :: Word32 -> Int32 -> Int32 -> Color -> IO ()",
        "tile_draw_on_image": "tileDrawOnImage :: Word32 -> Word32 -> Int32 -> Int32 -> IO ()",
        "tilemap_image": "tilemapImage :: Word32 -> IO Word32",
        "tile_layer_count": "tileLayerCount :: Word32 -> IO Int32",
        "tile_layer_index": "tileLayerIndex :: Word32 -> String -> IO Int32",
        "tile_layer_name": "tileLayerName :: Word32 -> Int32 -> IO String",
        "tile_layer_type": "tileLayerType :: Word32 -> Int32 -> IO Int32",
        "tile_layer_size": "tileLayerSize :: Word32 -> Int32 -> IO Dimensions",
        "tile_layer_visible": "tileLayerVisible :: Word32 -> Int32 -> IO Bool",
        "tile_layer_prop": "tileLayerProp :: Word32 -> Int32 -> String -> IO TilemapProp",
        "tile_layer_prop_count": "tileLayerPropCount :: Word32 -> Int32 -> IO Int32",
        "tile_layer_prop_at": "tileLayerPropAt :: Word32 -> Int32 -> Int32 -> IO TilemapProp",
        "tile_draw_layer": "tileDrawLayer :: Word32 -> Int32 -> Int32 -> Int32 -> IO ()",
        "tile_draw_layer_tint": "tileDrawLayerTint :: Word32 -> Int32 -> Int32 -> Int32 -> Color -> IO ()",
        "tile_draw_layer_on_image": "tileDrawLayerOnImage :: Word32 -> Word32 -> Int32 -> Int32 -> Int32 -> IO ()",
        "tile_layer_image": "tileLayerImage :: Word32 -> Int32 -> IO Word32",
        "tile_get_tile": "tileGetTile :: Word32 -> Int32 -> Int32 -> Int32 -> IO Int32",
        "tile_set_tile": "tileSetTile :: Word32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO ()",
        "tile_draw_tile": "tileDrawTile :: Word32 -> Int32 -> Int32 -> Int32 -> IO ()",
        "tile_image": "tileImage :: Word32 -> Int32 -> IO Word32",
        "tile_gid_prop": "tileGidProp :: Word32 -> Int32 -> String -> IO TilemapProp",
        "tile_gid_prop_count": "tileGidPropCount :: Word32 -> Int32 -> IO Int32",
        "tile_gid_prop_at": "tileGidPropAt :: Word32 -> Int32 -> Int32 -> IO TilemapProp",
        "tile_object_count": "tileObjectCount :: Word32 -> Int32 -> IO Int32",
        "tile_object": "tileObject :: Word32 -> Int32 -> Int32 -> IO TilemapObject",
        "tile_object_index": "tileObjectIndex :: Word32 -> Int32 -> String -> IO Int32",
        "tile_object_prop": "tileObjectProp :: Word32 -> Int32 -> Int32 -> String -> IO TilemapProp",
        "tile_object_prop_count": "tileObjectPropCount :: Word32 -> Int32 -> Int32 -> IO Int32",
        "tile_object_prop_at": "tileObjectPropAt :: Word32 -> Int32 -> Int32 -> Int32 -> IO TilemapProp",
        "current_time": "currentTime :: IO Word64",
        "delta_time": "deltaTime :: IO CFloat",
        "random_int": "randomInt :: Int32 -> Int32 -> IO Int32",
        "random_seed_get": "randomSeedGet :: IO Word64",
        "random_seed_set": "randomSeedSet :: Word64 -> IO ()"
      }
    },
    "zenc": {
      "id": "zenc",
      "binding": "carts/zenc/null0.h",
      "example": "carts/zenc/simple",
      "title": "Zen-C",
      "image": "zenc",
      "kind": "compiled",
      "file": "main.zc",
      "highlight": "c",
      "callback": "void update() {}",
      "toolchain": "zc (transpiles to C) + wasi-sdk",
      "amd64Only": true,
      "notes": [
        "`draw_polygon` and its siblings take plain `i32*`/`u8*`, not structs - the compiler segfaults on a user declaration naming a C-interop struct."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-zenc:latest",
      "decls": {
        "color_tint": "extern Color* color_tint(Color color, Color tint);",
        "color_fade": "extern Color* color_fade(Color color, f32 alpha);",
        "color_brightness": "extern Color* color_brightness(Color color, f32 factor);",
        "color_invert": "extern Color* color_invert(Color color);",
        "color_alpha_blend": "extern Color* color_alpha_blend(Color dst, Color src);",
        "color_contrast": "extern Color* color_contrast(Color color, f32 contrast);",
        "color_bilinear_interpolate": "extern Color* color_bilinear_interpolate(Color color00, Color color01, Color color10, Color color11, f32 coordinateX, f32 coordinateY);",
        "new_image": "extern u32 new_image(i32 width, i32 height, Color color);",
        "image_copy": "extern u32 image_copy(u32 image);",
        "image_subimage": "extern u32 image_subimage(u32 image, i32 x, i32 y, i32 width, i32 height);",
        "clear": "extern void clear(Color color);",
        "draw_point": "extern void draw_point(i32 x, i32 y, Color color);",
        "draw_line": "extern void draw_line(i32 startPosX, i32 startPosY, i32 endPosX, i32 endPosY, Color color);",
        "draw_rectangle": "extern void draw_rectangle(i32 posX, i32 posY, i32 width, i32 height, Color color);",
        "draw_triangle": "extern void draw_triangle(i32 x1, i32 y1, i32 x2, i32 y2, i32 x3, i32 y3, Color color);",
        "draw_ellipse": "extern void draw_ellipse(i32 centerX, i32 centerY, i32 radiusX, i32 radiusY, Color color);",
        "draw_circle": "extern void draw_circle(i32 centerX, i32 centerY, i32 radius, Color color);",
        "draw_polygon": "extern void draw_polygon(i32* points, i32 numPoints, u8* color);",
        "draw_arc": "extern void draw_arc(i32 centerX, i32 centerY, f32 radius, f32 startAngle, f32 endAngle, i32 segments, Color color);",
        "draw_rectangle_rounded": "extern void draw_rectangle_rounded(i32 x, i32 y, i32 width, i32 height, i32 cornerRadius, Color color);",
        "draw_image": "extern void draw_image(u32 src, i32 posX, i32 posY);",
        "draw_image_tint": "extern void draw_image_tint(u32 src, i32 posX, i32 posY, Color tint);",
        "draw_image_rotated": "extern void draw_image_rotated(u32 src, i32 posX, i32 posY, f32 degrees, f32 offsetX, f32 offsetY, ImageFilter filter);",
        "draw_image_flipped": "extern void draw_image_flipped(u32 src, i32 posX, i32 posY, bool flipHorizontal, bool flipVertical, bool flipDiagonal);",
        "draw_image_scaled": "extern void draw_image_scaled(u32 src, i32 posX, i32 posY, f32 scaleX, f32 scaleY, f32 offsetX, f32 offsetY, ImageFilter filter);",
        "draw_text": "extern void draw_text(u32 font, char* text, i32 posX, i32 posY, Color color);",
        "save_image": "extern void save_image(u32 image, char* filename);",
        "load_image": "extern u32 load_image(char* filename);",
        "image_resize": "extern u32 image_resize(u32 image, i32 newWidth, i32 newHeight, ImageFilter filter);",
        "image_scale": "extern u32 image_scale(u32 image, f32 scaleX, f32 scaleY, ImageFilter filter);",
        "image_color_replace": "extern void image_color_replace(u32 image, Color color, Color replace);",
        "image_color_tint": "extern void image_color_tint(u32 image, Color color);",
        "image_color_fade": "extern void image_color_fade(u32 image, f32 alpha);",
        "font_copy": "extern u32 font_copy(u32 font);",
        "font_scale": "extern u32 font_scale(u32 font, f32 scaleX, f32 scaleY, ImageFilter filter);",
        "load_font_bmf": "extern u32 load_font_bmf(char* filename, char* characters);",
        "load_font_bmf_from_image": "extern u32 load_font_bmf_from_image(u32 image, char* characters);",
        "measure_text": "extern Dimensions* measure_text(u32 font, char* text, i32 textLength);",
        "measure_image": "extern Dimensions* measure_image(u32 image);",
        "load_font_tty": "extern u32 load_font_tty(char* filename, i32 glyphWidth, i32 glyphHeight, char* characters);",
        "load_font_tty_from_image": "extern u32 load_font_tty_from_image(u32 image, i32 glyphWidth, i32 glyphHeight, char* characters);",
        "load_font_ttf": "extern u32 load_font_ttf(char* filename, i32 fontSize);",
        "image_color_invert": "extern void image_color_invert(u32 image);",
        "image_alpha_border": "extern Rectangle* image_alpha_border(u32 image, f32 threshold);",
        "image_crop": "extern void image_crop(u32 image, i32 x, i32 y, i32 width, i32 height);",
        "image_alpha_crop": "extern void image_alpha_crop(u32 image, f32 threshold);",
        "image_color_brightness": "extern void image_color_brightness(u32 image, f32 factor);",
        "image_flip": "extern void image_flip(u32 image, bool horizontal, bool vertical);",
        "image_color_contrast": "extern void image_color_contrast(u32 image, f32 contrast);",
        "image_alpha_mask": "extern void image_alpha_mask(u32 image, u32 alphaMask, i32 posX, i32 posY);",
        "image_rotate": "extern u32 image_rotate(u32 image, f32 degrees, ImageFilter filter);",
        "image_gradient": "extern u32 image_gradient(i32 width, i32 height, Color topLeft, Color topRight, Color bottomLeft, Color bottomRight);",
        "unload_image": "extern void unload_image(u32 image);",
        "unload_font": "extern void unload_font(u32 font);",
        "clear_image": "extern void clear_image(u32 destination, Color color);",
        "draw_point_on_image": "extern void draw_point_on_image(u32 destination, i32 x, i32 y, Color color);",
        "draw_line_on_image": "extern void draw_line_on_image(u32 destination, i32 startPosX, i32 startPosY, i32 endPosX, i32 endPosY, Color color);",
        "draw_rectangle_on_image": "extern void draw_rectangle_on_image(u32 destination, i32 posX, i32 posY, i32 width, i32 height, Color color);",
        "draw_triangle_on_image": "extern void draw_triangle_on_image(u32 destination, i32 x1, i32 y1, i32 x2, i32 y2, i32 x3, i32 y3, Color color);",
        "draw_ellipse_on_image": "extern void draw_ellipse_on_image(u32 destination, i32 centerX, i32 centerY, i32 radiusX, i32 radiusY, Color color);",
        "draw_circle_on_image": "extern void draw_circle_on_image(u32 destination, i32 centerX, i32 centerY, i32 radius, Color color);",
        "draw_polygon_on_image": "extern void draw_polygon_on_image(u32 destination, i32* points, i32 numPoints, u8* color);",
        "draw_rectangle_rounded_on_image": "extern void draw_rectangle_rounded_on_image(u32 destination, i32 x, i32 y, i32 width, i32 height, i32 cornerRadius, Color color);",
        "draw_image_on_image": "extern void draw_image_on_image(u32 destination, u32 src, i32 posX, i32 posY);",
        "draw_image_tint_on_image": "extern void draw_image_tint_on_image(u32 destination, u32 src, i32 posX, i32 posY, Color tint);",
        "draw_image_rotated_on_image": "extern void draw_image_rotated_on_image(u32 destination, u32 src, i32 posX, i32 posY, f32 degrees, f32 offsetX, f32 offsetY, ImageFilter filter);",
        "draw_image_flipped_on_image": "extern void draw_image_flipped_on_image(u32 destination, u32 src, i32 posX, i32 posY, bool flipHorizontal, bool flipVertical, bool flipDiagonal);",
        "draw_image_scaled_on_image": "extern void draw_image_scaled_on_image(u32 destination, u32 src, i32 posX, i32 posY, f32 scaleX, f32 scaleY, f32 offsetX, f32 offsetY, ImageFilter filter);",
        "draw_text_on_image": "extern void draw_text_on_image(u32 destination, u32 font, char* text, i32 posX, i32 posY, Color color);",
        "draw_rectangle_outline": "extern void draw_rectangle_outline(i32 posX, i32 posY, i32 width, i32 height, i32 thickness, Color color);",
        "draw_triangle_outline": "extern void draw_triangle_outline(i32 x1, i32 y1, i32 x2, i32 y2, i32 x3, i32 y3, i32 thickness, Color color);",
        "draw_ellipse_outline": "extern void draw_ellipse_outline(i32 centerX, i32 centerY, i32 radiusX, i32 radiusY, i32 thickness, Color color);",
        "draw_circle_outline": "extern void draw_circle_outline(i32 centerX, i32 centerY, i32 radius, i32 thickness, Color color);",
        "draw_polygon_outline": "extern void draw_polygon_outline(i32* points, i32 numPoints, i32 thickness, u8* color);",
        "draw_arc_outline": "extern void draw_arc_outline(i32 centerX, i32 centerY, f32 radius, f32 startAngle, f32 endAngle, i32 segments, i32 thickness, Color color);",
        "draw_rectangle_rounded_outline": "extern void draw_rectangle_rounded_outline(i32 x, i32 y, i32 width, i32 height, i32 cornerRadius, i32 thickness, Color color);",
        "draw_rectangle_outline_on_image": "extern void draw_rectangle_outline_on_image(u32 destination, i32 posX, i32 posY, i32 width, i32 height, i32 thickness, Color color);",
        "draw_triangle_outline_on_image": "extern void draw_triangle_outline_on_image(u32 destination, i32 x1, i32 y1, i32 x2, i32 y2, i32 x3, i32 y3, i32 thickness, Color color);",
        "draw_ellipse_outline_on_image": "extern void draw_ellipse_outline_on_image(u32 destination, i32 centerX, i32 centerY, i32 radiusX, i32 radiusY, i32 thickness, Color color);",
        "draw_circle_outline_on_image": "extern void draw_circle_outline_on_image(u32 destination, i32 centerX, i32 centerY, i32 radius, i32 thickness, Color color);",
        "draw_polygon_outline_on_image": "extern void draw_polygon_outline_on_image(u32 destination, i32* points, i32 numPoints, i32 thickness, u8* color);",
        "draw_rectangle_rounded_outline_on_image": "extern void draw_rectangle_rounded_outline_on_image(u32 destination, i32 x, i32 y, i32 width, i32 height, i32 cornerRadius, i32 thickness, Color color);",
        "gui_begin_window": "extern bool gui_begin_window(char* title, Rectangle rect);",
        "gui_end_window": "extern void gui_end_window();",
        "gui_button": "extern bool gui_button(char* label);",
        "gui_label": "extern void gui_label(char* text);",
        "gui_text": "extern void gui_text(char* text);",
        "gui_checkbox": "extern bool gui_checkbox(char* label, bool state);",
        "gui_slider": "extern f32 gui_slider(f32 value, f32 low, f32 high);",
        "gui_layout_row": "extern void gui_layout_row(i32* widths, i32 numWidths, i32 height);",
        "gui_end": "extern void gui_end();",
        "gui_draw": "extern void gui_draw(u32 dst);",
        "key_pressed": "extern bool key_pressed(Key key);",
        "key_down": "extern bool key_down(Key key);",
        "key_released": "extern bool key_released(Key key);",
        "key_up": "extern bool key_up(Key key);",
        "gamepad_button_pressed": "extern bool gamepad_button_pressed(i32 gamepad, GamepadButton button);",
        "gamepad_button_down": "extern bool gamepad_button_down(i32 gamepad, GamepadButton button);",
        "gamepad_button_released": "extern bool gamepad_button_released(i32 gamepad, GamepadButton button);",
        "mouse_position": "extern Vector* mouse_position();",
        "mouse_button_pressed": "extern bool mouse_button_pressed(MouseButton button);",
        "mouse_button_down": "extern bool mouse_button_down(MouseButton button);",
        "mouse_button_released": "extern bool mouse_button_released(MouseButton button);",
        "mouse_button_up": "extern bool mouse_button_up(MouseButton button);",
        "load_sound": "extern u32 load_sound(char* filename);",
        "play_sound": "extern void play_sound(u32 sound, bool loop);",
        "stop_sound": "extern void stop_sound(u32 sound);",
        "unload_sound": "extern void unload_sound(u32 sound);",
        "tts_sound": "extern u32 tts_sound(char* text, bool phonetic, i32 pitch, i32 speed, i32 throat, i32 mouth, bool sing);",
        "sfx_sound": "extern u32 sfx_sound(SfxParams params);",
        "sfx_generate": "extern SfxParams* sfx_generate(SfxPresetType type);",
        "load_tilemap": "extern u32 load_tilemap(char* filename);",
        "unload_tilemap": "extern void unload_tilemap(u32 tilemap);",
        "tile_update": "extern void tile_update(u32 tilemap, f32 deltaTime);",
        "tile_map_size": "extern Dimensions* tile_map_size(u32 tilemap);",
        "tile_tile_size": "extern Dimensions* tile_tile_size(u32 tilemap);",
        "tile_map_prop": "extern TilemapProp* tile_map_prop(u32 tilemap, char* name);",
        "tile_map_prop_count": "extern i32 tile_map_prop_count(u32 tilemap);",
        "tile_map_prop_at": "extern TilemapProp* tile_map_prop_at(u32 tilemap, i32 index);",
        "tile_draw": "extern void tile_draw(u32 tilemap, i32 posX, i32 posY);",
        "tile_draw_tint": "extern void tile_draw_tint(u32 tilemap, i32 posX, i32 posY, Color tint);",
        "tile_draw_on_image": "extern void tile_draw_on_image(u32 dst, u32 tilemap, i32 posX, i32 posY);",
        "tilemap_image": "extern u32 tilemap_image(u32 tilemap);",
        "tile_layer_count": "extern i32 tile_layer_count(u32 tilemap);",
        "tile_layer_index": "extern i32 tile_layer_index(u32 tilemap, char* name);",
        "tile_layer_name": "extern char* tile_layer_name(u32 tilemap, i32 layer);",
        "tile_layer_type": "extern TileLayerKind tile_layer_type(u32 tilemap, i32 layer);",
        "tile_layer_size": "extern Dimensions* tile_layer_size(u32 tilemap, i32 layer);",
        "tile_layer_visible": "extern bool tile_layer_visible(u32 tilemap, i32 layer);",
        "tile_layer_prop": "extern TilemapProp* tile_layer_prop(u32 tilemap, i32 layer, char* name);",
        "tile_layer_prop_count": "extern i32 tile_layer_prop_count(u32 tilemap, i32 layer);",
        "tile_layer_prop_at": "extern TilemapProp* tile_layer_prop_at(u32 tilemap, i32 layer, i32 index);",
        "tile_draw_layer": "extern void tile_draw_layer(u32 tilemap, i32 layer, i32 posX, i32 posY);",
        "tile_draw_layer_tint": "extern void tile_draw_layer_tint(u32 tilemap, i32 layer, i32 posX, i32 posY, Color tint);",
        "tile_draw_layer_on_image": "extern void tile_draw_layer_on_image(u32 dst, u32 tilemap, i32 layer, i32 posX, i32 posY);",
        "tile_layer_image": "extern u32 tile_layer_image(u32 tilemap, i32 layer);",
        "tile_get_tile": "extern i32 tile_get_tile(u32 tilemap, i32 layer, i32 column, i32 row);",
        "tile_set_tile": "extern void tile_set_tile(u32 tilemap, i32 layer, i32 column, i32 row, i32 gid);",
        "tile_draw_tile": "extern void tile_draw_tile(u32 tilemap, i32 gid, i32 posX, i32 posY);",
        "tile_image": "extern u32 tile_image(u32 tilemap, i32 gid);",
        "tile_gid_prop": "extern TilemapProp* tile_gid_prop(u32 tilemap, i32 gid, char* name);",
        "tile_gid_prop_count": "extern i32 tile_gid_prop_count(u32 tilemap, i32 gid);",
        "tile_gid_prop_at": "extern TilemapProp* tile_gid_prop_at(u32 tilemap, i32 gid, i32 index);",
        "tile_object_count": "extern i32 tile_object_count(u32 tilemap, i32 layer);",
        "tile_object": "extern TilemapObject* tile_object(u32 tilemap, i32 layer, i32 index);",
        "tile_object_index": "extern i32 tile_object_index(u32 tilemap, i32 layer, char* name);",
        "tile_object_prop": "extern TilemapProp* tile_object_prop(u32 tilemap, i32 layer, i32 index, char* name);",
        "tile_object_prop_count": "extern i32 tile_object_prop_count(u32 tilemap, i32 layer, i32 index);",
        "tile_object_prop_at": "extern TilemapProp* tile_object_prop_at(u32 tilemap, i32 layer, i32 index, i32 propIndex);",
        "current_time": "extern u64 current_time();",
        "delta_time": "extern f32 delta_time();",
        "random_int": "extern i32 random_int(i32 min, i32 max);",
        "random_seed_get": "extern u64 random_seed_get();",
        "random_seed_set": "extern void random_seed_set(u64 seed);"
      }
    },
    "jik": {
      "id": "jik",
      "binding": "carts/jik/null0.jik",
      "example": "carts/jik/simple",
      "title": "Jik",
      "image": "jik",
      "kind": "compiled",
      "file": "main.jik",
      "highlight": "rust",
      "callback": "export func update() -> void",
      "toolchain": "jik (transpiles to C) + wasi-sdk",
      "amd64Only": true,
      "reference": true,
      "notes": [
        "Jik's types don't line up with the null0 ABI, so null0.jik is a set of `extern` declarations and C wrappers to copy into your cart's `@embed` block.",
        "Jik has no string type at all, so the 25 functions taking text cannot be declared - keep the literal inside the C wrapper."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-jik:latest",
      "decls": {
        "clear": "extern func clear as clear(color: int) -> void",
        "color_tint": "extern func color_tint as color_tint(color: int, tint: int) -> int",
        "color_fade": "extern func color_fade as color_fade(color: int, alpha: double) -> int",
        "color_brightness": "extern func color_brightness as color_brightness(color: int, factor: double) -> int",
        "color_invert": "extern func color_invert as color_invert(color: int) -> int",
        "color_alpha_blend": "extern func color_alpha_blend as color_alpha_blend(dst: int, src: int) -> int",
        "color_contrast": "extern func color_contrast as color_contrast(color: int, contrast: double) -> int",
        "color_bilinear_interpolate": "extern func color_bilinear_interpolate as color_bilinear_interpolate(color00: int, color01: int, color10: int, color11: int, coordinateX: double, coordinateY: double) -> int",
        "new_image": "extern func new_image as new_image(width: int, height: int, color: int) -> Image",
        "image_copy": "extern func image_copy as image_copy(image: Image) -> Image",
        "image_subimage": "extern func image_subimage as image_subimage(image: Image, x: int, y: int, width: int, height: int) -> Image",
        "draw_point": "extern func draw_point as draw_point(x: int, y: int, color: int) -> void",
        "draw_line": "extern func draw_line as draw_line(startPosX: int, startPosY: int, endPosX: int, endPosY: int, color: int) -> void",
        "draw_rectangle": "extern func draw_rectangle as draw_rectangle(posX: int, posY: int, width: int, height: int, color: int) -> void",
        "draw_triangle": "extern func draw_triangle as draw_triangle(x1: int, y1: int, x2: int, y2: int, x3: int, y3: int, color: int) -> void",
        "draw_ellipse": "extern func draw_ellipse as draw_ellipse(centerX: int, centerY: int, radiusX: int, radiusY: int, color: int) -> void",
        "draw_circle": "extern func draw_circle as draw_circle(centerX: int, centerY: int, radius: int, color: int) -> void",
        "draw_polygon": "extern func draw_polygon as draw_polygon(points: *int, numPoints: int, color: int) -> void",
        "draw_arc": "extern func draw_arc as draw_arc(centerX: int, centerY: int, radius: double, startAngle: double, endAngle: double, segments: int, color: int) -> void",
        "draw_rectangle_rounded": "extern func draw_rectangle_rounded as draw_rectangle_rounded(x: int, y: int, width: int, height: int, cornerRadius: int, color: int) -> void",
        "draw_image": "extern func draw_image as draw_image(src: Image, posX: int, posY: int) -> void",
        "draw_image_tint": "extern func draw_image_tint as draw_image_tint(src: Image, posX: int, posY: int, tint: int) -> void",
        "draw_image_rotated": "extern func draw_image_rotated as draw_image_rotated(src: Image, posX: int, posY: int, degrees: double, offsetX: double, offsetY: double, filter: int) -> void",
        "draw_image_flipped": "extern func draw_image_flipped as draw_image_flipped(src: Image, posX: int, posY: int, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) -> void",
        "draw_image_scaled": "extern func draw_image_scaled as draw_image_scaled(src: Image, posX: int, posY: int, scaleX: double, scaleY: double, offsetX: double, offsetY: double, filter: int) -> void",
        "image_resize": "extern func image_resize as image_resize(image: Image, newWidth: int, newHeight: int, filter: int) -> Image",
        "image_scale": "extern func image_scale as image_scale(image: Image, scaleX: double, scaleY: double, filter: int) -> Image",
        "image_color_replace": "extern func image_color_replace as image_color_replace(image: Image, color: int, replace: int) -> void",
        "image_color_tint": "extern func image_color_tint as image_color_tint(image: Image, color: int) -> void",
        "image_color_fade": "extern func image_color_fade as image_color_fade(image: Image, alpha: double) -> void",
        "font_copy": "extern func font_copy as font_copy(font: Font) -> Font",
        "font_scale": "extern func font_scale as font_scale(font: Font, scaleX: double, scaleY: double, filter: int) -> Font",
        "measure_image": "extern func measure_image as measure_image(image: Image) -> int",
        "image_color_invert": "extern func image_color_invert as image_color_invert(image: Image) -> void",
        "image_alpha_border": "extern func image_alpha_border as image_alpha_border(image: Image, threshold: double) -> int",
        "image_crop": "extern func image_crop as image_crop(image: Image, x: int, y: int, width: int, height: int) -> void",
        "image_alpha_crop": "extern func image_alpha_crop as image_alpha_crop(image: Image, threshold: double) -> void",
        "image_color_brightness": "extern func image_color_brightness as image_color_brightness(image: Image, factor: double) -> void",
        "image_flip": "extern func image_flip as image_flip(image: Image, horizontal: bool, vertical: bool) -> void",
        "image_color_contrast": "extern func image_color_contrast as image_color_contrast(image: Image, contrast: double) -> void",
        "image_alpha_mask": "extern func image_alpha_mask as image_alpha_mask(image: Image, alphaMask: Image, posX: int, posY: int) -> void",
        "image_rotate": "extern func image_rotate as image_rotate(image: Image, degrees: double, filter: int) -> Image",
        "image_gradient": "extern func image_gradient as image_gradient(width: int, height: int, topLeft: int, topRight: int, bottomLeft: int, bottomRight: int) -> Image",
        "unload_image": "extern func unload_image as unload_image(image: Image) -> void",
        "unload_font": "extern func unload_font as unload_font(font: Font) -> void",
        "clear_image": "extern func clear_image as clear_image(destination: Image, color: int) -> void",
        "draw_point_on_image": "extern func draw_point_on_image as draw_point_on_image(destination: Image, x: int, y: int, color: int) -> void",
        "draw_line_on_image": "extern func draw_line_on_image as draw_line_on_image(destination: Image, startPosX: int, startPosY: int, endPosX: int, endPosY: int, color: int) -> void",
        "draw_rectangle_on_image": "extern func draw_rectangle_on_image as draw_rectangle_on_image(destination: Image, posX: int, posY: int, width: int, height: int, color: int) -> void",
        "draw_triangle_on_image": "extern func draw_triangle_on_image as draw_triangle_on_image(destination: Image, x1: int, y1: int, x2: int, y2: int, x3: int, y3: int, color: int) -> void",
        "draw_ellipse_on_image": "extern func draw_ellipse_on_image as draw_ellipse_on_image(destination: Image, centerX: int, centerY: int, radiusX: int, radiusY: int, color: int) -> void",
        "draw_circle_on_image": "extern func draw_circle_on_image as draw_circle_on_image(destination: Image, centerX: int, centerY: int, radius: int, color: int) -> void",
        "draw_polygon_on_image": "extern func draw_polygon_on_image as draw_polygon_on_image(destination: Image, points: *int, numPoints: int, color: int) -> void",
        "draw_rectangle_rounded_on_image": "extern func draw_rectangle_rounded_on_image as draw_rectangle_rounded_on_image(destination: Image, x: int, y: int, width: int, height: int, cornerRadius: int, color: int) -> void",
        "draw_image_on_image": "extern func draw_image_on_image as draw_image_on_image(destination: Image, src: Image, posX: int, posY: int) -> void",
        "draw_image_tint_on_image": "extern func draw_image_tint_on_image as draw_image_tint_on_image(destination: Image, src: Image, posX: int, posY: int, tint: int) -> void",
        "draw_image_rotated_on_image": "extern func draw_image_rotated_on_image as draw_image_rotated_on_image(destination: Image, src: Image, posX: int, posY: int, degrees: double, offsetX: double, offsetY: double, filter: int) -> void",
        "draw_image_flipped_on_image": "extern func draw_image_flipped_on_image as draw_image_flipped_on_image(destination: Image, src: Image, posX: int, posY: int, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) -> void",
        "draw_image_scaled_on_image": "extern func draw_image_scaled_on_image as draw_image_scaled_on_image(destination: Image, src: Image, posX: int, posY: int, scaleX: double, scaleY: double, offsetX: double, offsetY: double, filter: int) -> void",
        "draw_rectangle_outline": "extern func draw_rectangle_outline as draw_rectangle_outline(posX: int, posY: int, width: int, height: int, thickness: int, color: int) -> void",
        "draw_triangle_outline": "extern func draw_triangle_outline as draw_triangle_outline(x1: int, y1: int, x2: int, y2: int, x3: int, y3: int, thickness: int, color: int) -> void",
        "draw_ellipse_outline": "extern func draw_ellipse_outline as draw_ellipse_outline(centerX: int, centerY: int, radiusX: int, radiusY: int, thickness: int, color: int) -> void",
        "draw_circle_outline": "extern func draw_circle_outline as draw_circle_outline(centerX: int, centerY: int, radius: int, thickness: int, color: int) -> void",
        "draw_polygon_outline": "extern func draw_polygon_outline as draw_polygon_outline(points: *int, numPoints: int, thickness: int, color: int) -> void",
        "draw_arc_outline": "extern func draw_arc_outline as draw_arc_outline(centerX: int, centerY: int, radius: double, startAngle: double, endAngle: double, segments: int, thickness: int, color: int) -> void",
        "draw_rectangle_rounded_outline": "extern func draw_rectangle_rounded_outline as draw_rectangle_rounded_outline(x: int, y: int, width: int, height: int, cornerRadius: int, thickness: int, color: int) -> void",
        "draw_rectangle_outline_on_image": "extern func draw_rectangle_outline_on_image as draw_rectangle_outline_on_image(destination: Image, posX: int, posY: int, width: int, height: int, thickness: int, color: int) -> void",
        "draw_triangle_outline_on_image": "extern func draw_triangle_outline_on_image as draw_triangle_outline_on_image(destination: Image, x1: int, y1: int, x2: int, y2: int, x3: int, y3: int, thickness: int, color: int) -> void",
        "draw_ellipse_outline_on_image": "extern func draw_ellipse_outline_on_image as draw_ellipse_outline_on_image(destination: Image, centerX: int, centerY: int, radiusX: int, radiusY: int, thickness: int, color: int) -> void",
        "draw_circle_outline_on_image": "extern func draw_circle_outline_on_image as draw_circle_outline_on_image(destination: Image, centerX: int, centerY: int, radius: int, thickness: int, color: int) -> void",
        "draw_polygon_outline_on_image": "extern func draw_polygon_outline_on_image as draw_polygon_outline_on_image(destination: Image, points: *int, numPoints: int, thickness: int, color: int) -> void",
        "draw_rectangle_rounded_outline_on_image": "extern func draw_rectangle_rounded_outline_on_image as draw_rectangle_rounded_outline_on_image(destination: Image, x: int, y: int, width: int, height: int, cornerRadius: int, thickness: int, color: int) -> void",
        "gui_end_window": "extern func gui_end_window as gui_end_window() -> void",
        "gui_slider": "extern func gui_slider as gui_slider(value: double, low: double, high: double) -> double",
        "gui_layout_row": "extern func gui_layout_row as gui_layout_row(widths: *int, numWidths: int, height: int) -> void",
        "gui_end": "extern func gui_end as gui_end() -> void",
        "gui_draw": "extern func gui_draw as gui_draw(dst: Image) -> void",
        "key_pressed": "extern func key_pressed as key_pressed(key: int) -> bool",
        "key_down": "extern func key_down as key_down(key: int) -> bool",
        "key_released": "extern func key_released as key_released(key: int) -> bool",
        "key_up": "extern func key_up as key_up(key: int) -> bool",
        "gamepad_button_pressed": "extern func gamepad_button_pressed as gamepad_button_pressed(gamepad: int, button: int) -> bool",
        "gamepad_button_down": "extern func gamepad_button_down as gamepad_button_down(gamepad: int, button: int) -> bool",
        "gamepad_button_released": "extern func gamepad_button_released as gamepad_button_released(gamepad: int, button: int) -> bool",
        "mouse_position": "extern func mouse_position as mouse_position() -> int",
        "mouse_button_pressed": "extern func mouse_button_pressed as mouse_button_pressed(button: int) -> bool",
        "mouse_button_down": "extern func mouse_button_down as mouse_button_down(button: int) -> bool",
        "mouse_button_released": "extern func mouse_button_released as mouse_button_released(button: int) -> bool",
        "mouse_button_up": "extern func mouse_button_up as mouse_button_up(button: int) -> bool",
        "play_sound": "extern func play_sound as play_sound(sound: Sound, loop: bool) -> void",
        "stop_sound": "extern func stop_sound as stop_sound(sound: Sound) -> void",
        "unload_sound": "extern func unload_sound as unload_sound(sound: Sound) -> void",
        "sfx_sound": "extern func sfx_sound as sfx_sound(params: *int) -> Sound",
        "sfx_generate": "extern func sfx_generate as sfx_generate(type: int) -> *int",
        "unload_tilemap": "extern func unload_tilemap as unload_tilemap(tilemap: Tilemap) -> void",
        "tile_update": "extern func tile_update as tile_update(tilemap: Tilemap, deltaTime: double) -> void",
        "tile_map_size": "extern func tile_map_size as tile_map_size(tilemap: Tilemap) -> int",
        "tile_tile_size": "extern func tile_tile_size as tile_tile_size(tilemap: Tilemap) -> int",
        "tile_map_prop_count": "extern func tile_map_prop_count as tile_map_prop_count(tilemap: Tilemap) -> int",
        "tile_map_prop_at": "extern func tile_map_prop_at as tile_map_prop_at(tilemap: Tilemap, index: int) -> int",
        "tile_draw": "extern func tile_draw as tile_draw(tilemap: Tilemap, posX: int, posY: int) -> void",
        "tile_draw_tint": "extern func tile_draw_tint as tile_draw_tint(tilemap: Tilemap, posX: int, posY: int, tint: int) -> void",
        "tile_draw_on_image": "extern func tile_draw_on_image as tile_draw_on_image(dst: Image, tilemap: Tilemap, posX: int, posY: int) -> void",
        "tilemap_image": "extern func tilemap_image as tilemap_image(tilemap: Tilemap) -> Image",
        "tile_layer_count": "extern func tile_layer_count as tile_layer_count(tilemap: Tilemap) -> int",
        "tile_layer_type": "extern func tile_layer_type as tile_layer_type(tilemap: Tilemap, layer: int) -> int",
        "tile_layer_size": "extern func tile_layer_size as tile_layer_size(tilemap: Tilemap, layer: int) -> int",
        "tile_layer_visible": "extern func tile_layer_visible as tile_layer_visible(tilemap: Tilemap, layer: int) -> bool",
        "tile_layer_prop_count": "extern func tile_layer_prop_count as tile_layer_prop_count(tilemap: Tilemap, layer: int) -> int",
        "tile_layer_prop_at": "extern func tile_layer_prop_at as tile_layer_prop_at(tilemap: Tilemap, layer: int, index: int) -> int",
        "tile_draw_layer": "extern func tile_draw_layer as tile_draw_layer(tilemap: Tilemap, layer: int, posX: int, posY: int) -> void",
        "tile_draw_layer_tint": "extern func tile_draw_layer_tint as tile_draw_layer_tint(tilemap: Tilemap, layer: int, posX: int, posY: int, tint: int) -> void",
        "tile_draw_layer_on_image": "extern func tile_draw_layer_on_image as tile_draw_layer_on_image(dst: Image, tilemap: Tilemap, layer: int, posX: int, posY: int) -> void",
        "tile_layer_image": "extern func tile_layer_image as tile_layer_image(tilemap: Tilemap, layer: int) -> Image",
        "tile_get_tile": "extern func tile_get_tile as tile_get_tile(tilemap: Tilemap, layer: int, column: int, row: int) -> int",
        "tile_set_tile": "extern func tile_set_tile as tile_set_tile(tilemap: Tilemap, layer: int, column: int, row: int, gid: int) -> void",
        "tile_draw_tile": "extern func tile_draw_tile as tile_draw_tile(tilemap: Tilemap, gid: int, posX: int, posY: int) -> void",
        "tile_image": "extern func tile_image as tile_image(tilemap: Tilemap, gid: int) -> Image",
        "tile_gid_prop_count": "extern func tile_gid_prop_count as tile_gid_prop_count(tilemap: Tilemap, gid: int) -> int",
        "tile_gid_prop_at": "extern func tile_gid_prop_at as tile_gid_prop_at(tilemap: Tilemap, gid: int, index: int) -> int",
        "tile_object_count": "extern func tile_object_count as tile_object_count(tilemap: Tilemap, layer: int) -> int",
        "tile_object": "extern func tile_object as tile_object(tilemap: Tilemap, layer: int, index: int) -> int",
        "tile_object_prop_count": "extern func tile_object_prop_count as tile_object_prop_count(tilemap: Tilemap, layer: int, index: int) -> int",
        "tile_object_prop_at": "extern func tile_object_prop_at as tile_object_prop_at(tilemap: Tilemap, layer: int, index: int, propIndex: int) -> int",
        "current_time": "extern func current_time as current_time() -> int",
        "delta_time": "extern func delta_time as delta_time() -> double",
        "random_int": "extern func random_int as random_int(min: int, max: int) -> int",
        "random_seed_get": "extern func random_seed_get as random_seed_get() -> int",
        "random_seed_set": "extern func random_seed_set as random_seed_set(seed: int) -> void"
      }
    },
    "wat": {
      "id": "wat",
      "binding": "carts/wat/null0.wat",
      "example": "carts/wat/simple",
      "title": "WAT",
      "image": "wat",
      "kind": "compiled",
      "file": "main.wat",
      "highlight": "lisp",
      "callback": "(func (export \"update\") ...)",
      "toolchain": "wat2wasm",
      "reference": true,
      "notes": [
        "Raw wasm text - no include mechanism, so copy the imports you need out of null0.wat.",
        "A `Color` is a *pointer to 4 bytes* you write into memory yourself.",
        "No `malloc`, so struct-returning functions do not work on the web host."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-wat:latest",
      "decls": {
        "color_tint": "(import \"null0\" \"color_tint\" (func $color_tint (param i32 i32) (result i32)))",
        "color_fade": "(import \"null0\" \"color_fade\" (func $color_fade (param i32 f32) (result i32)))",
        "color_brightness": "(import \"null0\" \"color_brightness\" (func $color_brightness (param i32 f32) (result i32)))",
        "color_invert": "(import \"null0\" \"color_invert\" (func $color_invert (param i32) (result i32)))",
        "color_alpha_blend": "(import \"null0\" \"color_alpha_blend\" (func $color_alpha_blend (param i32 i32) (result i32)))",
        "color_contrast": "(import \"null0\" \"color_contrast\" (func $color_contrast (param i32 f32) (result i32)))",
        "color_bilinear_interpolate": "(import \"null0\" \"color_bilinear_interpolate\" (func $color_bilinear_interpolate (param i32 i32 i32 i32 f32 f32) (result i32)))",
        "new_image": "(import \"null0\" \"new_image\" (func $new_image (param i32 i32 i32) (result i32)))",
        "image_copy": "(import \"null0\" \"image_copy\" (func $image_copy (param i32) (result i32)))",
        "image_subimage": "(import \"null0\" \"image_subimage\" (func $image_subimage (param i32 i32 i32 i32 i32) (result i32)))",
        "clear": "(import \"null0\" \"clear\" (func $clear (param i32)))",
        "draw_point": "(import \"null0\" \"draw_point\" (func $draw_point (param i32 i32 i32)))",
        "draw_line": "(import \"null0\" \"draw_line\" (func $draw_line (param i32 i32 i32 i32 i32)))",
        "draw_rectangle": "(import \"null0\" \"draw_rectangle\" (func $draw_rectangle (param i32 i32 i32 i32 i32)))",
        "draw_triangle": "(import \"null0\" \"draw_triangle\" (func $draw_triangle (param i32 i32 i32 i32 i32 i32 i32)))",
        "draw_ellipse": "(import \"null0\" \"draw_ellipse\" (func $draw_ellipse (param i32 i32 i32 i32 i32)))",
        "draw_circle": "(import \"null0\" \"draw_circle\" (func $draw_circle (param i32 i32 i32 i32)))",
        "draw_polygon": "(import \"null0\" \"draw_polygon\" (func $draw_polygon (param i32 i32 i32)))",
        "draw_arc": "(import \"null0\" \"draw_arc\" (func $draw_arc (param i32 i32 f32 f32 f32 i32 i32)))",
        "draw_rectangle_rounded": "(import \"null0\" \"draw_rectangle_rounded\" (func $draw_rectangle_rounded (param i32 i32 i32 i32 i32 i32)))",
        "draw_image": "(import \"null0\" \"draw_image\" (func $draw_image (param i32 i32 i32)))",
        "draw_image_tint": "(import \"null0\" \"draw_image_tint\" (func $draw_image_tint (param i32 i32 i32 i32)))",
        "draw_image_rotated": "(import \"null0\" \"draw_image_rotated\" (func $draw_image_rotated (param i32 i32 i32 f32 f32 f32 i32)))",
        "draw_image_flipped": "(import \"null0\" \"draw_image_flipped\" (func $draw_image_flipped (param i32 i32 i32 i32 i32 i32)))",
        "draw_image_scaled": "(import \"null0\" \"draw_image_scaled\" (func $draw_image_scaled (param i32 i32 i32 f32 f32 f32 f32 i32)))",
        "draw_text": "(import \"null0\" \"draw_text\" (func $draw_text (param i32 i32 i32 i32 i32)))",
        "save_image": "(import \"null0\" \"save_image\" (func $save_image (param i32 i32)))",
        "load_image": "(import \"null0\" \"load_image\" (func $load_image (param i32) (result i32)))",
        "image_resize": "(import \"null0\" \"image_resize\" (func $image_resize (param i32 i32 i32 i32) (result i32)))",
        "image_scale": "(import \"null0\" \"image_scale\" (func $image_scale (param i32 f32 f32 i32) (result i32)))",
        "image_color_replace": "(import \"null0\" \"image_color_replace\" (func $image_color_replace (param i32 i32 i32)))",
        "image_color_tint": "(import \"null0\" \"image_color_tint\" (func $image_color_tint (param i32 i32)))",
        "image_color_fade": "(import \"null0\" \"image_color_fade\" (func $image_color_fade (param i32 f32)))",
        "font_copy": "(import \"null0\" \"font_copy\" (func $font_copy (param i32) (result i32)))",
        "font_scale": "(import \"null0\" \"font_scale\" (func $font_scale (param i32 f32 f32 i32) (result i32)))",
        "load_font_bmf": "(import \"null0\" \"load_font_bmf\" (func $load_font_bmf (param i32 i32) (result i32)))",
        "load_font_bmf_from_image": "(import \"null0\" \"load_font_bmf_from_image\" (func $load_font_bmf_from_image (param i32 i32) (result i32)))",
        "measure_text": "(import \"null0\" \"measure_text\" (func $measure_text (param i32 i32 i32) (result i32)))",
        "measure_image": "(import \"null0\" \"measure_image\" (func $measure_image (param i32) (result i32)))",
        "load_font_tty": "(import \"null0\" \"load_font_tty\" (func $load_font_tty (param i32 i32 i32 i32) (result i32)))",
        "load_font_tty_from_image": "(import \"null0\" \"load_font_tty_from_image\" (func $load_font_tty_from_image (param i32 i32 i32 i32) (result i32)))",
        "load_font_ttf": "(import \"null0\" \"load_font_ttf\" (func $load_font_ttf (param i32 i32) (result i32)))",
        "image_color_invert": "(import \"null0\" \"image_color_invert\" (func $image_color_invert (param i32)))",
        "image_alpha_border": "(import \"null0\" \"image_alpha_border\" (func $image_alpha_border (param i32 f32) (result i32)))",
        "image_crop": "(import \"null0\" \"image_crop\" (func $image_crop (param i32 i32 i32 i32 i32)))",
        "image_alpha_crop": "(import \"null0\" \"image_alpha_crop\" (func $image_alpha_crop (param i32 f32)))",
        "image_color_brightness": "(import \"null0\" \"image_color_brightness\" (func $image_color_brightness (param i32 f32)))",
        "image_flip": "(import \"null0\" \"image_flip\" (func $image_flip (param i32 i32 i32)))",
        "image_color_contrast": "(import \"null0\" \"image_color_contrast\" (func $image_color_contrast (param i32 f32)))",
        "image_alpha_mask": "(import \"null0\" \"image_alpha_mask\" (func $image_alpha_mask (param i32 i32 i32 i32)))",
        "image_rotate": "(import \"null0\" \"image_rotate\" (func $image_rotate (param i32 f32 i32) (result i32)))",
        "image_gradient": "(import \"null0\" \"image_gradient\" (func $image_gradient (param i32 i32 i32 i32 i32 i32) (result i32)))",
        "unload_image": "(import \"null0\" \"unload_image\" (func $unload_image (param i32)))",
        "unload_font": "(import \"null0\" \"unload_font\" (func $unload_font (param i32)))",
        "clear_image": "(import \"null0\" \"clear_image\" (func $clear_image (param i32 i32)))",
        "draw_point_on_image": "(import \"null0\" \"draw_point_on_image\" (func $draw_point_on_image (param i32 i32 i32 i32)))",
        "draw_line_on_image": "(import \"null0\" \"draw_line_on_image\" (func $draw_line_on_image (param i32 i32 i32 i32 i32 i32)))",
        "draw_rectangle_on_image": "(import \"null0\" \"draw_rectangle_on_image\" (func $draw_rectangle_on_image (param i32 i32 i32 i32 i32 i32)))",
        "draw_triangle_on_image": "(import \"null0\" \"draw_triangle_on_image\" (func $draw_triangle_on_image (param i32 i32 i32 i32 i32 i32 i32 i32)))",
        "draw_ellipse_on_image": "(import \"null0\" \"draw_ellipse_on_image\" (func $draw_ellipse_on_image (param i32 i32 i32 i32 i32 i32)))",
        "draw_circle_on_image": "(import \"null0\" \"draw_circle_on_image\" (func $draw_circle_on_image (param i32 i32 i32 i32 i32)))",
        "draw_polygon_on_image": "(import \"null0\" \"draw_polygon_on_image\" (func $draw_polygon_on_image (param i32 i32 i32 i32)))",
        "draw_rectangle_rounded_on_image": "(import \"null0\" \"draw_rectangle_rounded_on_image\" (func $draw_rectangle_rounded_on_image (param i32 i32 i32 i32 i32 i32 i32)))",
        "draw_image_on_image": "(import \"null0\" \"draw_image_on_image\" (func $draw_image_on_image (param i32 i32 i32 i32)))",
        "draw_image_tint_on_image": "(import \"null0\" \"draw_image_tint_on_image\" (func $draw_image_tint_on_image (param i32 i32 i32 i32 i32)))",
        "draw_image_rotated_on_image": "(import \"null0\" \"draw_image_rotated_on_image\" (func $draw_image_rotated_on_image (param i32 i32 i32 i32 f32 f32 f32 i32)))",
        "draw_image_flipped_on_image": "(import \"null0\" \"draw_image_flipped_on_image\" (func $draw_image_flipped_on_image (param i32 i32 i32 i32 i32 i32 i32)))",
        "draw_image_scaled_on_image": "(import \"null0\" \"draw_image_scaled_on_image\" (func $draw_image_scaled_on_image (param i32 i32 i32 i32 f32 f32 f32 f32 i32)))",
        "draw_text_on_image": "(import \"null0\" \"draw_text_on_image\" (func $draw_text_on_image (param i32 i32 i32 i32 i32 i32)))",
        "draw_rectangle_outline": "(import \"null0\" \"draw_rectangle_outline\" (func $draw_rectangle_outline (param i32 i32 i32 i32 i32 i32)))",
        "draw_triangle_outline": "(import \"null0\" \"draw_triangle_outline\" (func $draw_triangle_outline (param i32 i32 i32 i32 i32 i32 i32 i32)))",
        "draw_ellipse_outline": "(import \"null0\" \"draw_ellipse_outline\" (func $draw_ellipse_outline (param i32 i32 i32 i32 i32 i32)))",
        "draw_circle_outline": "(import \"null0\" \"draw_circle_outline\" (func $draw_circle_outline (param i32 i32 i32 i32 i32)))",
        "draw_polygon_outline": "(import \"null0\" \"draw_polygon_outline\" (func $draw_polygon_outline (param i32 i32 i32 i32)))",
        "draw_arc_outline": "(import \"null0\" \"draw_arc_outline\" (func $draw_arc_outline (param i32 i32 f32 f32 f32 i32 i32 i32)))",
        "draw_rectangle_rounded_outline": "(import \"null0\" \"draw_rectangle_rounded_outline\" (func $draw_rectangle_rounded_outline (param i32 i32 i32 i32 i32 i32 i32)))",
        "draw_rectangle_outline_on_image": "(import \"null0\" \"draw_rectangle_outline_on_image\" (func $draw_rectangle_outline_on_image (param i32 i32 i32 i32 i32 i32 i32)))",
        "draw_triangle_outline_on_image": "(import \"null0\" \"draw_triangle_outline_on_image\" (func $draw_triangle_outline_on_image (param i32 i32 i32 i32 i32 i32 i32 i32 i32)))",
        "draw_ellipse_outline_on_image": "(import \"null0\" \"draw_ellipse_outline_on_image\" (func $draw_ellipse_outline_on_image (param i32 i32 i32 i32 i32 i32 i32)))",
        "draw_circle_outline_on_image": "(import \"null0\" \"draw_circle_outline_on_image\" (func $draw_circle_outline_on_image (param i32 i32 i32 i32 i32 i32)))",
        "draw_polygon_outline_on_image": "(import \"null0\" \"draw_polygon_outline_on_image\" (func $draw_polygon_outline_on_image (param i32 i32 i32 i32 i32)))",
        "draw_rectangle_rounded_outline_on_image": "(import \"null0\" \"draw_rectangle_rounded_outline_on_image\" (func $draw_rectangle_rounded_outline_on_image (param i32 i32 i32 i32 i32 i32 i32 i32)))",
        "gui_begin_window": "(import \"null0\" \"gui_begin_window\" (func $gui_begin_window (param i32 i32) (result i32)))",
        "gui_end_window": "(import \"null0\" \"gui_end_window\" (func $gui_end_window))",
        "gui_button": "(import \"null0\" \"gui_button\" (func $gui_button (param i32) (result i32)))",
        "gui_label": "(import \"null0\" \"gui_label\" (func $gui_label (param i32)))",
        "gui_text": "(import \"null0\" \"gui_text\" (func $gui_text (param i32)))",
        "gui_checkbox": "(import \"null0\" \"gui_checkbox\" (func $gui_checkbox (param i32 i32) (result i32)))",
        "gui_slider": "(import \"null0\" \"gui_slider\" (func $gui_slider (param f32 f32 f32) (result f32)))",
        "gui_layout_row": "(import \"null0\" \"gui_layout_row\" (func $gui_layout_row (param i32 i32 i32)))",
        "gui_end": "(import \"null0\" \"gui_end\" (func $gui_end))",
        "gui_draw": "(import \"null0\" \"gui_draw\" (func $gui_draw (param i32)))",
        "key_pressed": "(import \"null0\" \"key_pressed\" (func $key_pressed (param i32) (result i32)))",
        "key_down": "(import \"null0\" \"key_down\" (func $key_down (param i32) (result i32)))",
        "key_released": "(import \"null0\" \"key_released\" (func $key_released (param i32) (result i32)))",
        "key_up": "(import \"null0\" \"key_up\" (func $key_up (param i32) (result i32)))",
        "gamepad_button_pressed": "(import \"null0\" \"gamepad_button_pressed\" (func $gamepad_button_pressed (param i32 i32) (result i32)))",
        "gamepad_button_down": "(import \"null0\" \"gamepad_button_down\" (func $gamepad_button_down (param i32 i32) (result i32)))",
        "gamepad_button_released": "(import \"null0\" \"gamepad_button_released\" (func $gamepad_button_released (param i32 i32) (result i32)))",
        "mouse_position": "(import \"null0\" \"mouse_position\" (func $mouse_position (result i32)))",
        "mouse_button_pressed": "(import \"null0\" \"mouse_button_pressed\" (func $mouse_button_pressed (param i32) (result i32)))",
        "mouse_button_down": "(import \"null0\" \"mouse_button_down\" (func $mouse_button_down (param i32) (result i32)))",
        "mouse_button_released": "(import \"null0\" \"mouse_button_released\" (func $mouse_button_released (param i32) (result i32)))",
        "mouse_button_up": "(import \"null0\" \"mouse_button_up\" (func $mouse_button_up (param i32) (result i32)))",
        "load_sound": "(import \"null0\" \"load_sound\" (func $load_sound (param i32) (result i32)))",
        "play_sound": "(import \"null0\" \"play_sound\" (func $play_sound (param i32 i32)))",
        "stop_sound": "(import \"null0\" \"stop_sound\" (func $stop_sound (param i32)))",
        "unload_sound": "(import \"null0\" \"unload_sound\" (func $unload_sound (param i32)))",
        "tts_sound": "(import \"null0\" \"tts_sound\" (func $tts_sound (param i32 i32 i32 i32 i32 i32 i32) (result i32)))",
        "sfx_sound": "(import \"null0\" \"sfx_sound\" (func $sfx_sound (param i32) (result i32)))",
        "sfx_generate": "(import \"null0\" \"sfx_generate\" (func $sfx_generate (param i32) (result i32)))",
        "load_tilemap": "(import \"null0\" \"load_tilemap\" (func $load_tilemap (param i32) (result i32)))",
        "unload_tilemap": "(import \"null0\" \"unload_tilemap\" (func $unload_tilemap (param i32)))",
        "tile_update": "(import \"null0\" \"tile_update\" (func $tile_update (param i32 f32)))",
        "tile_map_size": "(import \"null0\" \"tile_map_size\" (func $tile_map_size (param i32) (result i32)))",
        "tile_tile_size": "(import \"null0\" \"tile_tile_size\" (func $tile_tile_size (param i32) (result i32)))",
        "tile_map_prop": "(import \"null0\" \"tile_map_prop\" (func $tile_map_prop (param i32 i32) (result i32)))",
        "tile_map_prop_count": "(import \"null0\" \"tile_map_prop_count\" (func $tile_map_prop_count (param i32) (result i32)))",
        "tile_map_prop_at": "(import \"null0\" \"tile_map_prop_at\" (func $tile_map_prop_at (param i32 i32) (result i32)))",
        "tile_draw": "(import \"null0\" \"tile_draw\" (func $tile_draw (param i32 i32 i32)))",
        "tile_draw_tint": "(import \"null0\" \"tile_draw_tint\" (func $tile_draw_tint (param i32 i32 i32 i32)))",
        "tile_draw_on_image": "(import \"null0\" \"tile_draw_on_image\" (func $tile_draw_on_image (param i32 i32 i32 i32)))",
        "tilemap_image": "(import \"null0\" \"tilemap_image\" (func $tilemap_image (param i32) (result i32)))",
        "tile_layer_count": "(import \"null0\" \"tile_layer_count\" (func $tile_layer_count (param i32) (result i32)))",
        "tile_layer_index": "(import \"null0\" \"tile_layer_index\" (func $tile_layer_index (param i32 i32) (result i32)))",
        "tile_layer_name": "(import \"null0\" \"tile_layer_name\" (func $tile_layer_name (param i32 i32) (result i32)))",
        "tile_layer_type": "(import \"null0\" \"tile_layer_type\" (func $tile_layer_type (param i32 i32) (result i32)))",
        "tile_layer_size": "(import \"null0\" \"tile_layer_size\" (func $tile_layer_size (param i32 i32) (result i32)))",
        "tile_layer_visible": "(import \"null0\" \"tile_layer_visible\" (func $tile_layer_visible (param i32 i32) (result i32)))",
        "tile_layer_prop": "(import \"null0\" \"tile_layer_prop\" (func $tile_layer_prop (param i32 i32 i32) (result i32)))",
        "tile_layer_prop_count": "(import \"null0\" \"tile_layer_prop_count\" (func $tile_layer_prop_count (param i32 i32) (result i32)))",
        "tile_layer_prop_at": "(import \"null0\" \"tile_layer_prop_at\" (func $tile_layer_prop_at (param i32 i32 i32) (result i32)))",
        "tile_draw_layer": "(import \"null0\" \"tile_draw_layer\" (func $tile_draw_layer (param i32 i32 i32 i32)))",
        "tile_draw_layer_tint": "(import \"null0\" \"tile_draw_layer_tint\" (func $tile_draw_layer_tint (param i32 i32 i32 i32 i32)))",
        "tile_draw_layer_on_image": "(import \"null0\" \"tile_draw_layer_on_image\" (func $tile_draw_layer_on_image (param i32 i32 i32 i32 i32)))",
        "tile_layer_image": "(import \"null0\" \"tile_layer_image\" (func $tile_layer_image (param i32 i32) (result i32)))",
        "tile_get_tile": "(import \"null0\" \"tile_get_tile\" (func $tile_get_tile (param i32 i32 i32 i32) (result i32)))",
        "tile_set_tile": "(import \"null0\" \"tile_set_tile\" (func $tile_set_tile (param i32 i32 i32 i32 i32)))",
        "tile_draw_tile": "(import \"null0\" \"tile_draw_tile\" (func $tile_draw_tile (param i32 i32 i32 i32)))",
        "tile_image": "(import \"null0\" \"tile_image\" (func $tile_image (param i32 i32) (result i32)))",
        "tile_gid_prop": "(import \"null0\" \"tile_gid_prop\" (func $tile_gid_prop (param i32 i32 i32) (result i32)))",
        "tile_gid_prop_count": "(import \"null0\" \"tile_gid_prop_count\" (func $tile_gid_prop_count (param i32 i32) (result i32)))",
        "tile_gid_prop_at": "(import \"null0\" \"tile_gid_prop_at\" (func $tile_gid_prop_at (param i32 i32 i32) (result i32)))",
        "tile_object_count": "(import \"null0\" \"tile_object_count\" (func $tile_object_count (param i32 i32) (result i32)))",
        "tile_object": "(import \"null0\" \"tile_object\" (func $tile_object (param i32 i32 i32) (result i32)))",
        "tile_object_index": "(import \"null0\" \"tile_object_index\" (func $tile_object_index (param i32 i32 i32) (result i32)))",
        "tile_object_prop": "(import \"null0\" \"tile_object_prop\" (func $tile_object_prop (param i32 i32 i32 i32) (result i32)))",
        "tile_object_prop_count": "(import \"null0\" \"tile_object_prop_count\" (func $tile_object_prop_count (param i32 i32 i32) (result i32)))",
        "tile_object_prop_at": "(import \"null0\" \"tile_object_prop_at\" (func $tile_object_prop_at (param i32 i32 i32 i32) (result i32)))",
        "current_time": "(import \"null0\" \"current_time\" (func $current_time (result i64)))",
        "delta_time": "(import \"null0\" \"delta_time\" (func $delta_time (result f32)))",
        "random_int": "(import \"null0\" \"random_int\" (func $random_int (param i32 i32) (result i32)))",
        "random_seed_get": "(import \"null0\" \"random_seed_get\" (func $random_seed_get (result i64)))",
        "random_seed_set": "(import \"null0\" \"random_seed_set\" (func $random_seed_set (param i64)))"
      }
    },
    "walt": {
      "id": "walt",
      "binding": "carts/walt/null0.walt",
      "example": "carts/walt/simple",
      "title": "Walt",
      "image": "walt",
      "kind": "compiled",
      "file": "main.walt",
      "highlight": "javascript",
      "callback": "export function update() {}",
      "toolchain": "walt",
      "reference": true,
      "notes": [
        "Imports are per-module: copy the `type` + `import` pair for each function you use.",
        "You need a local memory (`const memory: Memory = { initial: 1 }`) even for a plain store.",
        "A `Color` is a *pointer to 4 bytes* you write into memory yourself.",
        "No `malloc`, so struct-returning functions do not work on the web host."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-walt:latest",
      "decls": {
        "color_tint": "type ColorTint = (i32, i32) => i32;\nimport { color_tint: ColorTint } from 'null0';",
        "color_fade": "type ColorFade = (i32, f32) => i32;\nimport { color_fade: ColorFade } from 'null0';",
        "color_brightness": "type ColorBrightness = (i32, f32) => i32;\nimport { color_brightness: ColorBrightness } from 'null0';",
        "color_invert": "type ColorInvert = (i32) => i32;\nimport { color_invert: ColorInvert } from 'null0';",
        "color_alpha_blend": "type ColorAlphaBlend = (i32, i32) => i32;\nimport { color_alpha_blend: ColorAlphaBlend } from 'null0';",
        "color_contrast": "type ColorContrast = (i32, f32) => i32;\nimport { color_contrast: ColorContrast } from 'null0';",
        "color_bilinear_interpolate": "type ColorBilinearInterpolate = (i32, i32, i32, i32, f32, f32) => i32;\nimport { color_bilinear_interpolate: ColorBilinearInterpolate } from 'null0';",
        "new_image": "type NewImage = (i32, i32, i32) => i32;\nimport { new_image: NewImage } from 'null0';",
        "image_copy": "type ImageCopy = (i32) => i32;\nimport { image_copy: ImageCopy } from 'null0';",
        "image_subimage": "type ImageSubimage = (i32, i32, i32, i32, i32) => i32;\nimport { image_subimage: ImageSubimage } from 'null0';",
        "clear": "type Clear = (i32) => void;\nimport { clear: Clear } from 'null0';",
        "draw_point": "type DrawPoint = (i32, i32, i32) => void;\nimport { draw_point: DrawPoint } from 'null0';",
        "draw_line": "type DrawLine = (i32, i32, i32, i32, i32) => void;\nimport { draw_line: DrawLine } from 'null0';",
        "draw_rectangle": "type DrawRectangle = (i32, i32, i32, i32, i32) => void;\nimport { draw_rectangle: DrawRectangle } from 'null0';",
        "draw_triangle": "type DrawTriangle = (i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_triangle: DrawTriangle } from 'null0';",
        "draw_ellipse": "type DrawEllipse = (i32, i32, i32, i32, i32) => void;\nimport { draw_ellipse: DrawEllipse } from 'null0';",
        "draw_circle": "type DrawCircle = (i32, i32, i32, i32) => void;\nimport { draw_circle: DrawCircle } from 'null0';",
        "draw_polygon": "type DrawPolygon = (i32, i32, i32) => void;\nimport { draw_polygon: DrawPolygon } from 'null0';",
        "draw_arc": "type DrawArc = (i32, i32, f32, f32, f32, i32, i32) => void;\nimport { draw_arc: DrawArc } from 'null0';",
        "draw_rectangle_rounded": "type DrawRectangleRounded = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_rectangle_rounded: DrawRectangleRounded } from 'null0';",
        "draw_image": "type DrawImage = (i32, i32, i32) => void;\nimport { draw_image: DrawImage } from 'null0';",
        "draw_image_tint": "type DrawImageTint = (i32, i32, i32, i32) => void;\nimport { draw_image_tint: DrawImageTint } from 'null0';",
        "draw_image_rotated": "type DrawImageRotated = (i32, i32, i32, f32, f32, f32, i32) => void;\nimport { draw_image_rotated: DrawImageRotated } from 'null0';",
        "draw_image_flipped": "type DrawImageFlipped = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_image_flipped: DrawImageFlipped } from 'null0';",
        "draw_image_scaled": "type DrawImageScaled = (i32, i32, i32, f32, f32, f32, f32, i32) => void;\nimport { draw_image_scaled: DrawImageScaled } from 'null0';",
        "draw_text": "type DrawText = (i32, i32, i32, i32, i32) => void;\nimport { draw_text: DrawText } from 'null0';",
        "save_image": "type SaveImage = (i32, i32) => void;\nimport { save_image: SaveImage } from 'null0';",
        "load_image": "type LoadImage = (i32) => i32;\nimport { load_image: LoadImage } from 'null0';",
        "image_resize": "type ImageResize = (i32, i32, i32, i32) => i32;\nimport { image_resize: ImageResize } from 'null0';",
        "image_scale": "type ImageScale = (i32, f32, f32, i32) => i32;\nimport { image_scale: ImageScale } from 'null0';",
        "image_color_replace": "type ImageColorReplace = (i32, i32, i32) => void;\nimport { image_color_replace: ImageColorReplace } from 'null0';",
        "image_color_tint": "type ImageColorTint = (i32, i32) => void;\nimport { image_color_tint: ImageColorTint } from 'null0';",
        "image_color_fade": "type ImageColorFade = (i32, f32) => void;\nimport { image_color_fade: ImageColorFade } from 'null0';",
        "font_copy": "type FontCopy = (i32) => i32;\nimport { font_copy: FontCopy } from 'null0';",
        "font_scale": "type FontScale = (i32, f32, f32, i32) => i32;\nimport { font_scale: FontScale } from 'null0';",
        "load_font_bmf": "type LoadFontBmf = (i32, i32) => i32;\nimport { load_font_bmf: LoadFontBmf } from 'null0';",
        "load_font_bmf_from_image": "type LoadFontBmfFromImage = (i32, i32) => i32;\nimport { load_font_bmf_from_image: LoadFontBmfFromImage } from 'null0';",
        "measure_text": "type MeasureText = (i32, i32, i32) => i32;\nimport { measure_text: MeasureText } from 'null0';",
        "measure_image": "type MeasureImage = (i32) => i32;\nimport { measure_image: MeasureImage } from 'null0';",
        "load_font_tty": "type LoadFontTty = (i32, i32, i32, i32) => i32;\nimport { load_font_tty: LoadFontTty } from 'null0';",
        "load_font_tty_from_image": "type LoadFontTtyFromImage = (i32, i32, i32, i32) => i32;\nimport { load_font_tty_from_image: LoadFontTtyFromImage } from 'null0';",
        "load_font_ttf": "type LoadFontTtf = (i32, i32) => i32;\nimport { load_font_ttf: LoadFontTtf } from 'null0';",
        "image_color_invert": "type ImageColorInvert = (i32) => void;\nimport { image_color_invert: ImageColorInvert } from 'null0';",
        "image_alpha_border": "type ImageAlphaBorder = (i32, f32) => i32;\nimport { image_alpha_border: ImageAlphaBorder } from 'null0';",
        "image_crop": "type ImageCrop = (i32, i32, i32, i32, i32) => void;\nimport { image_crop: ImageCrop } from 'null0';",
        "image_alpha_crop": "type ImageAlphaCrop = (i32, f32) => void;\nimport { image_alpha_crop: ImageAlphaCrop } from 'null0';",
        "image_color_brightness": "type ImageColorBrightness = (i32, f32) => void;\nimport { image_color_brightness: ImageColorBrightness } from 'null0';",
        "image_flip": "type ImageFlip = (i32, i32, i32) => void;\nimport { image_flip: ImageFlip } from 'null0';",
        "image_color_contrast": "type ImageColorContrast = (i32, f32) => void;\nimport { image_color_contrast: ImageColorContrast } from 'null0';",
        "image_alpha_mask": "type ImageAlphaMask = (i32, i32, i32, i32) => void;\nimport { image_alpha_mask: ImageAlphaMask } from 'null0';",
        "image_rotate": "type ImageRotate = (i32, f32, i32) => i32;\nimport { image_rotate: ImageRotate } from 'null0';",
        "image_gradient": "type ImageGradient = (i32, i32, i32, i32, i32, i32) => i32;\nimport { image_gradient: ImageGradient } from 'null0';",
        "unload_image": "type UnloadImage = (i32) => void;\nimport { unload_image: UnloadImage } from 'null0';",
        "unload_font": "type UnloadFont = (i32) => void;\nimport { unload_font: UnloadFont } from 'null0';",
        "clear_image": "type ClearImage = (i32, i32) => void;\nimport { clear_image: ClearImage } from 'null0';",
        "draw_point_on_image": "type DrawPointOnImage = (i32, i32, i32, i32) => void;\nimport { draw_point_on_image: DrawPointOnImage } from 'null0';",
        "draw_line_on_image": "type DrawLineOnImage = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_line_on_image: DrawLineOnImage } from 'null0';",
        "draw_rectangle_on_image": "type DrawRectangleOnImage = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_rectangle_on_image: DrawRectangleOnImage } from 'null0';",
        "draw_triangle_on_image": "type DrawTriangleOnImage = (i32, i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_triangle_on_image: DrawTriangleOnImage } from 'null0';",
        "draw_ellipse_on_image": "type DrawEllipseOnImage = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_ellipse_on_image: DrawEllipseOnImage } from 'null0';",
        "draw_circle_on_image": "type DrawCircleOnImage = (i32, i32, i32, i32, i32) => void;\nimport { draw_circle_on_image: DrawCircleOnImage } from 'null0';",
        "draw_polygon_on_image": "type DrawPolygonOnImage = (i32, i32, i32, i32) => void;\nimport { draw_polygon_on_image: DrawPolygonOnImage } from 'null0';",
        "draw_rectangle_rounded_on_image": "type DrawRectangleRoundedOnImage = (i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_rectangle_rounded_on_image: DrawRectangleRoundedOnImage } from 'null0';",
        "draw_image_on_image": "type DrawImageOnImage = (i32, i32, i32, i32) => void;\nimport { draw_image_on_image: DrawImageOnImage } from 'null0';",
        "draw_image_tint_on_image": "type DrawImageTintOnImage = (i32, i32, i32, i32, i32) => void;\nimport { draw_image_tint_on_image: DrawImageTintOnImage } from 'null0';",
        "draw_image_rotated_on_image": "type DrawImageRotatedOnImage = (i32, i32, i32, i32, f32, f32, f32, i32) => void;\nimport { draw_image_rotated_on_image: DrawImageRotatedOnImage } from 'null0';",
        "draw_image_flipped_on_image": "type DrawImageFlippedOnImage = (i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_image_flipped_on_image: DrawImageFlippedOnImage } from 'null0';",
        "draw_image_scaled_on_image": "type DrawImageScaledOnImage = (i32, i32, i32, i32, f32, f32, f32, f32, i32) => void;\nimport { draw_image_scaled_on_image: DrawImageScaledOnImage } from 'null0';",
        "draw_text_on_image": "type DrawTextOnImage = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_text_on_image: DrawTextOnImage } from 'null0';",
        "draw_rectangle_outline": "type DrawRectangleOutline = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_rectangle_outline: DrawRectangleOutline } from 'null0';",
        "draw_triangle_outline": "type DrawTriangleOutline = (i32, i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_triangle_outline: DrawTriangleOutline } from 'null0';",
        "draw_ellipse_outline": "type DrawEllipseOutline = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_ellipse_outline: DrawEllipseOutline } from 'null0';",
        "draw_circle_outline": "type DrawCircleOutline = (i32, i32, i32, i32, i32) => void;\nimport { draw_circle_outline: DrawCircleOutline } from 'null0';",
        "draw_polygon_outline": "type DrawPolygonOutline = (i32, i32, i32, i32) => void;\nimport { draw_polygon_outline: DrawPolygonOutline } from 'null0';",
        "draw_arc_outline": "type DrawArcOutline = (i32, i32, f32, f32, f32, i32, i32, i32) => void;\nimport { draw_arc_outline: DrawArcOutline } from 'null0';",
        "draw_rectangle_rounded_outline": "type DrawRectangleRoundedOutline = (i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_rectangle_rounded_outline: DrawRectangleRoundedOutline } from 'null0';",
        "draw_rectangle_outline_on_image": "type DrawRectangleOutlineOnImage = (i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_rectangle_outline_on_image: DrawRectangleOutlineOnImage } from 'null0';",
        "draw_triangle_outline_on_image": "type DrawTriangleOutlineOnImage = (i32, i32, i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_triangle_outline_on_image: DrawTriangleOutlineOnImage } from 'null0';",
        "draw_ellipse_outline_on_image": "type DrawEllipseOutlineOnImage = (i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_ellipse_outline_on_image: DrawEllipseOutlineOnImage } from 'null0';",
        "draw_circle_outline_on_image": "type DrawCircleOutlineOnImage = (i32, i32, i32, i32, i32, i32) => void;\nimport { draw_circle_outline_on_image: DrawCircleOutlineOnImage } from 'null0';",
        "draw_polygon_outline_on_image": "type DrawPolygonOutlineOnImage = (i32, i32, i32, i32, i32) => void;\nimport { draw_polygon_outline_on_image: DrawPolygonOutlineOnImage } from 'null0';",
        "draw_rectangle_rounded_outline_on_image": "type DrawRectangleRoundedOutlineOnImage = (i32, i32, i32, i32, i32, i32, i32, i32) => void;\nimport { draw_rectangle_rounded_outline_on_image: DrawRectangleRoundedOutlineOnImage } from 'null0';",
        "gui_begin_window": "type GuiBeginWindow = (i32, i32) => i32;\nimport { gui_begin_window: GuiBeginWindow } from 'null0';",
        "gui_end_window": "type GuiEndWindow = () => void;\nimport { gui_end_window: GuiEndWindow } from 'null0';",
        "gui_button": "type GuiButton = (i32) => i32;\nimport { gui_button: GuiButton } from 'null0';",
        "gui_label": "type GuiLabel = (i32) => void;\nimport { gui_label: GuiLabel } from 'null0';",
        "gui_text": "type GuiText = (i32) => void;\nimport { gui_text: GuiText } from 'null0';",
        "gui_checkbox": "type GuiCheckbox = (i32, i32) => i32;\nimport { gui_checkbox: GuiCheckbox } from 'null0';",
        "gui_slider": "type GuiSlider = (f32, f32, f32) => f32;\nimport { gui_slider: GuiSlider } from 'null0';",
        "gui_layout_row": "type GuiLayoutRow = (i32, i32, i32) => void;\nimport { gui_layout_row: GuiLayoutRow } from 'null0';",
        "gui_end": "type GuiEnd = () => void;\nimport { gui_end: GuiEnd } from 'null0';",
        "gui_draw": "type GuiDraw = (i32) => void;\nimport { gui_draw: GuiDraw } from 'null0';",
        "key_pressed": "type KeyPressed = (i32) => i32;\nimport { key_pressed: KeyPressed } from 'null0';",
        "key_down": "type KeyDown = (i32) => i32;\nimport { key_down: KeyDown } from 'null0';",
        "key_released": "type KeyReleased = (i32) => i32;\nimport { key_released: KeyReleased } from 'null0';",
        "key_up": "type KeyUp = (i32) => i32;\nimport { key_up: KeyUp } from 'null0';",
        "gamepad_button_pressed": "type GamepadButtonPressed = (i32, i32) => i32;\nimport { gamepad_button_pressed: GamepadButtonPressed } from 'null0';",
        "gamepad_button_down": "type GamepadButtonDown = (i32, i32) => i32;\nimport { gamepad_button_down: GamepadButtonDown } from 'null0';",
        "gamepad_button_released": "type GamepadButtonReleased = (i32, i32) => i32;\nimport { gamepad_button_released: GamepadButtonReleased } from 'null0';",
        "mouse_position": "type MousePosition = () => i32;\nimport { mouse_position: MousePosition } from 'null0';",
        "mouse_button_pressed": "type MouseButtonPressed = (i32) => i32;\nimport { mouse_button_pressed: MouseButtonPressed } from 'null0';",
        "mouse_button_down": "type MouseButtonDown = (i32) => i32;\nimport { mouse_button_down: MouseButtonDown } from 'null0';",
        "mouse_button_released": "type MouseButtonReleased = (i32) => i32;\nimport { mouse_button_released: MouseButtonReleased } from 'null0';",
        "mouse_button_up": "type MouseButtonUp = (i32) => i32;\nimport { mouse_button_up: MouseButtonUp } from 'null0';",
        "load_sound": "type LoadSound = (i32) => i32;\nimport { load_sound: LoadSound } from 'null0';",
        "play_sound": "type PlaySound = (i32, i32) => void;\nimport { play_sound: PlaySound } from 'null0';",
        "stop_sound": "type StopSound = (i32) => void;\nimport { stop_sound: StopSound } from 'null0';",
        "unload_sound": "type UnloadSound = (i32) => void;\nimport { unload_sound: UnloadSound } from 'null0';",
        "tts_sound": "type TtsSound = (i32, i32, i32, i32, i32, i32, i32) => i32;\nimport { tts_sound: TtsSound } from 'null0';",
        "sfx_sound": "type SfxSound = (i32) => i32;\nimport { sfx_sound: SfxSound } from 'null0';",
        "sfx_generate": "type SfxGenerate = (i32) => i32;\nimport { sfx_generate: SfxGenerate } from 'null0';",
        "load_tilemap": "type LoadTilemap = (i32) => i32;\nimport { load_tilemap: LoadTilemap } from 'null0';",
        "unload_tilemap": "type UnloadTilemap = (i32) => void;\nimport { unload_tilemap: UnloadTilemap } from 'null0';",
        "tile_update": "type TileUpdate = (i32, f32) => void;\nimport { tile_update: TileUpdate } from 'null0';",
        "tile_map_size": "type TileMapSize = (i32) => i32;\nimport { tile_map_size: TileMapSize } from 'null0';",
        "tile_tile_size": "type TileTileSize = (i32) => i32;\nimport { tile_tile_size: TileTileSize } from 'null0';",
        "tile_map_prop": "type TileMapProp = (i32, i32) => i32;\nimport { tile_map_prop: TileMapProp } from 'null0';",
        "tile_map_prop_count": "type TileMapPropCount = (i32) => i32;\nimport { tile_map_prop_count: TileMapPropCount } from 'null0';",
        "tile_map_prop_at": "type TileMapPropAt = (i32, i32) => i32;\nimport { tile_map_prop_at: TileMapPropAt } from 'null0';",
        "tile_draw": "type TileDraw = (i32, i32, i32) => void;\nimport { tile_draw: TileDraw } from 'null0';",
        "tile_draw_tint": "type TileDrawTint = (i32, i32, i32, i32) => void;\nimport { tile_draw_tint: TileDrawTint } from 'null0';",
        "tile_draw_on_image": "type TileDrawOnImage = (i32, i32, i32, i32) => void;\nimport { tile_draw_on_image: TileDrawOnImage } from 'null0';",
        "tilemap_image": "type TilemapImage = (i32) => i32;\nimport { tilemap_image: TilemapImage } from 'null0';",
        "tile_layer_count": "type TileLayerCount = (i32) => i32;\nimport { tile_layer_count: TileLayerCount } from 'null0';",
        "tile_layer_index": "type TileLayerIndex = (i32, i32) => i32;\nimport { tile_layer_index: TileLayerIndex } from 'null0';",
        "tile_layer_name": "type TileLayerName = (i32, i32) => i32;\nimport { tile_layer_name: TileLayerName } from 'null0';",
        "tile_layer_type": "type TileLayerType = (i32, i32) => i32;\nimport { tile_layer_type: TileLayerType } from 'null0';",
        "tile_layer_size": "type TileLayerSize = (i32, i32) => i32;\nimport { tile_layer_size: TileLayerSize } from 'null0';",
        "tile_layer_visible": "type TileLayerVisible = (i32, i32) => i32;\nimport { tile_layer_visible: TileLayerVisible } from 'null0';",
        "tile_layer_prop": "type TileLayerProp = (i32, i32, i32) => i32;\nimport { tile_layer_prop: TileLayerProp } from 'null0';",
        "tile_layer_prop_count": "type TileLayerPropCount = (i32, i32) => i32;\nimport { tile_layer_prop_count: TileLayerPropCount } from 'null0';",
        "tile_layer_prop_at": "type TileLayerPropAt = (i32, i32, i32) => i32;\nimport { tile_layer_prop_at: TileLayerPropAt } from 'null0';",
        "tile_draw_layer": "type TileDrawLayer = (i32, i32, i32, i32) => void;\nimport { tile_draw_layer: TileDrawLayer } from 'null0';",
        "tile_draw_layer_tint": "type TileDrawLayerTint = (i32, i32, i32, i32, i32) => void;\nimport { tile_draw_layer_tint: TileDrawLayerTint } from 'null0';",
        "tile_draw_layer_on_image": "type TileDrawLayerOnImage = (i32, i32, i32, i32, i32) => void;\nimport { tile_draw_layer_on_image: TileDrawLayerOnImage } from 'null0';",
        "tile_layer_image": "type TileLayerImage = (i32, i32) => i32;\nimport { tile_layer_image: TileLayerImage } from 'null0';",
        "tile_get_tile": "type TileGetTile = (i32, i32, i32, i32) => i32;\nimport { tile_get_tile: TileGetTile } from 'null0';",
        "tile_set_tile": "type TileSetTile = (i32, i32, i32, i32, i32) => void;\nimport { tile_set_tile: TileSetTile } from 'null0';",
        "tile_draw_tile": "type TileDrawTile = (i32, i32, i32, i32) => void;\nimport { tile_draw_tile: TileDrawTile } from 'null0';",
        "tile_image": "type TileImage = (i32, i32) => i32;\nimport { tile_image: TileImage } from 'null0';",
        "tile_gid_prop": "type TileGidProp = (i32, i32, i32) => i32;\nimport { tile_gid_prop: TileGidProp } from 'null0';",
        "tile_gid_prop_count": "type TileGidPropCount = (i32, i32) => i32;\nimport { tile_gid_prop_count: TileGidPropCount } from 'null0';",
        "tile_gid_prop_at": "type TileGidPropAt = (i32, i32, i32) => i32;\nimport { tile_gid_prop_at: TileGidPropAt } from 'null0';",
        "tile_object_count": "type TileObjectCount = (i32, i32) => i32;\nimport { tile_object_count: TileObjectCount } from 'null0';",
        "tile_object": "type TileObject = (i32, i32, i32) => i32;\nimport { tile_object: TileObject } from 'null0';",
        "tile_object_index": "type TileObjectIndex = (i32, i32, i32) => i32;\nimport { tile_object_index: TileObjectIndex } from 'null0';",
        "tile_object_prop": "type TileObjectProp = (i32, i32, i32, i32) => i32;\nimport { tile_object_prop: TileObjectProp } from 'null0';",
        "tile_object_prop_count": "type TileObjectPropCount = (i32, i32, i32) => i32;\nimport { tile_object_prop_count: TileObjectPropCount } from 'null0';",
        "tile_object_prop_at": "type TileObjectPropAt = (i32, i32, i32, i32) => i32;\nimport { tile_object_prop_at: TileObjectPropAt } from 'null0';",
        "current_time": "type CurrentTime = () => i64;\nimport { current_time: CurrentTime } from 'null0';",
        "delta_time": "type DeltaTime = () => f32;\nimport { delta_time: DeltaTime } from 'null0';",
        "random_int": "type RandomInt = (i32, i32) => i32;\nimport { random_int: RandomInt } from 'null0';",
        "random_seed_get": "type RandomSeedGet = () => i64;\nimport { random_seed_get: RandomSeedGet } from 'null0';",
        "random_seed_set": "type RandomSeedSet = (i64) => void;\nimport { random_seed_set: RandomSeedSet } from 'null0';"
      }
    },
    "js": {
      "id": "js",
      "binding": "carts/js/null0.d.ts",
      "example": "carts/js/simple",
      "title": "JavaScript",
      "image": "quickjs",
      "kind": "interpreted",
      "file": "main.js",
      "highlight": "typescript",
      "callback": "export function update () {}",
      "toolchain": "QuickJS, baked into main.wasm",
      "notes": [
        "The API is plain globals - nothing to import. Callbacks are ESM exports of `main.js`.",
        "Structs are plain objects (`{ r: 0, g: 121, b: 241, a: 255 }`); array args know their own length, so you never pass the count.",
        "`std` and `os` from QuickJS are available as globals, as is WASI.",
        "Drop `null0.d.ts` + `jsconfig.json` next to `main.js` for editor completion and typechecking."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-quickjs:latest",
      "decls": {
        "color_tint": "function color_tint(color: Color, tint: Color): Color",
        "color_fade": "function color_fade(color: Color, alpha: number): Color",
        "color_brightness": "function color_brightness(color: Color, factor: number): Color",
        "color_invert": "function color_invert(color: Color): Color",
        "color_alpha_blend": "function color_alpha_blend(dst: Color, src: Color): Color",
        "color_contrast": "function color_contrast(color: Color, contrast: number): Color",
        "color_bilinear_interpolate": "function color_bilinear_interpolate(color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: number, coordinateY: number): Color",
        "new_image": "function new_image(width: number, height: number, color: Color): Image",
        "image_copy": "function image_copy(image: Image): Image",
        "image_subimage": "function image_subimage(image: Image, x: number, y: number, width: number, height: number): Image",
        "clear": "function clear(color: Color): void",
        "draw_point": "function draw_point(x: number, y: number, color: Color): void",
        "draw_line": "function draw_line(startPosX: number, startPosY: number, endPosX: number, endPosY: number, color: Color): void",
        "draw_rectangle": "function draw_rectangle(posX: number, posY: number, width: number, height: number, color: Color): void",
        "draw_triangle": "function draw_triangle(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, color: Color): void",
        "draw_ellipse": "function draw_ellipse(centerX: number, centerY: number, radiusX: number, radiusY: number, color: Color): void",
        "draw_circle": "function draw_circle(centerX: number, centerY: number, radius: number, color: Color): void",
        "draw_polygon": "function draw_polygon(points: Vector[], color: Color): void",
        "draw_arc": "function draw_arc(centerX: number, centerY: number, radius: number, startAngle: number, endAngle: number, segments: number, color: Color): void",
        "draw_rectangle_rounded": "function draw_rectangle_rounded(x: number, y: number, width: number, height: number, cornerRadius: number, color: Color): void",
        "draw_image": "function draw_image(src: Image, posX: number, posY: number): void",
        "draw_image_tint": "function draw_image_tint(src: Image, posX: number, posY: number, tint: Color): void",
        "draw_image_rotated": "function draw_image_rotated(src: Image, posX: number, posY: number, degrees: number, offsetX: number, offsetY: number, filter: ImageFilter): void",
        "draw_image_flipped": "function draw_image_flipped(src: Image, posX: number, posY: number, flipHorizontal: boolean, flipVertical: boolean, flipDiagonal: boolean): void",
        "draw_image_scaled": "function draw_image_scaled(src: Image, posX: number, posY: number, scaleX: number, scaleY: number, offsetX: number, offsetY: number, filter: ImageFilter): void",
        "draw_text": "function draw_text(font: Font, text: string, posX: number, posY: number, color: Color): void",
        "save_image": "function save_image(image: Image, filename: string): void",
        "load_image": "function load_image(filename: string): Image",
        "image_resize": "function image_resize(image: Image, newWidth: number, newHeight: number, filter: ImageFilter): Image",
        "image_scale": "function image_scale(image: Image, scaleX: number, scaleY: number, filter: ImageFilter): Image",
        "image_color_replace": "function image_color_replace(image: Image, color: Color, replace: Color): void",
        "image_color_tint": "function image_color_tint(image: Image, color: Color): void",
        "image_color_fade": "function image_color_fade(image: Image, alpha: number): void",
        "font_copy": "function font_copy(font: Font): Font",
        "font_scale": "function font_scale(font: Font, scaleX: number, scaleY: number, filter: ImageFilter): Font",
        "load_font_bmf": "function load_font_bmf(filename: string, characters: string): Font",
        "load_font_bmf_from_image": "function load_font_bmf_from_image(image: Image, characters: string): Font",
        "measure_text": "function measure_text(font: Font, text: string, textLength: number): Dimensions",
        "measure_image": "function measure_image(image: Image): Dimensions",
        "load_font_tty": "function load_font_tty(filename: string, glyphWidth: number, glyphHeight: number, characters: string): Font",
        "load_font_tty_from_image": "function load_font_tty_from_image(image: Image, glyphWidth: number, glyphHeight: number, characters: string): Font",
        "load_font_ttf": "function load_font_ttf(filename: string, fontSize: number): Font",
        "image_color_invert": "function image_color_invert(image: Image): void",
        "image_alpha_border": "function image_alpha_border(image: Image, threshold: number): Rectangle",
        "image_crop": "function image_crop(image: Image, x: number, y: number, width: number, height: number): void",
        "image_alpha_crop": "function image_alpha_crop(image: Image, threshold: number): void",
        "image_color_brightness": "function image_color_brightness(image: Image, factor: number): void",
        "image_flip": "function image_flip(image: Image, horizontal: boolean, vertical: boolean): void",
        "image_color_contrast": "function image_color_contrast(image: Image, contrast: number): void",
        "image_alpha_mask": "function image_alpha_mask(image: Image, alphaMask: Image, posX: number, posY: number): void",
        "image_rotate": "function image_rotate(image: Image, degrees: number, filter: ImageFilter): Image",
        "image_gradient": "function image_gradient(width: number, height: number, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color): Image",
        "unload_image": "function unload_image(image: Image): void",
        "unload_font": "function unload_font(font: Font): void",
        "clear_image": "function clear_image(destination: Image, color: Color): void",
        "draw_point_on_image": "function draw_point_on_image(destination: Image, x: number, y: number, color: Color): void",
        "draw_line_on_image": "function draw_line_on_image(destination: Image, startPosX: number, startPosY: number, endPosX: number, endPosY: number, color: Color): void",
        "draw_rectangle_on_image": "function draw_rectangle_on_image(destination: Image, posX: number, posY: number, width: number, height: number, color: Color): void",
        "draw_triangle_on_image": "function draw_triangle_on_image(destination: Image, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, color: Color): void",
        "draw_ellipse_on_image": "function draw_ellipse_on_image(destination: Image, centerX: number, centerY: number, radiusX: number, radiusY: number, color: Color): void",
        "draw_circle_on_image": "function draw_circle_on_image(destination: Image, centerX: number, centerY: number, radius: number, color: Color): void",
        "draw_polygon_on_image": "function draw_polygon_on_image(destination: Image, points: Vector[], color: Color): void",
        "draw_rectangle_rounded_on_image": "function draw_rectangle_rounded_on_image(destination: Image, x: number, y: number, width: number, height: number, cornerRadius: number, color: Color): void",
        "draw_image_on_image": "function draw_image_on_image(destination: Image, src: Image, posX: number, posY: number): void",
        "draw_image_tint_on_image": "function draw_image_tint_on_image(destination: Image, src: Image, posX: number, posY: number, tint: Color): void",
        "draw_image_rotated_on_image": "function draw_image_rotated_on_image(destination: Image, src: Image, posX: number, posY: number, degrees: number, offsetX: number, offsetY: number, filter: ImageFilter): void",
        "draw_image_flipped_on_image": "function draw_image_flipped_on_image(destination: Image, src: Image, posX: number, posY: number, flipHorizontal: boolean, flipVertical: boolean, flipDiagonal: boolean): void",
        "draw_image_scaled_on_image": "function draw_image_scaled_on_image(destination: Image, src: Image, posX: number, posY: number, scaleX: number, scaleY: number, offsetX: number, offsetY: number, filter: ImageFilter): void",
        "draw_text_on_image": "function draw_text_on_image(destination: Image, font: Font, text: string, posX: number, posY: number, color: Color): void",
        "draw_rectangle_outline": "function draw_rectangle_outline(posX: number, posY: number, width: number, height: number, thickness: number, color: Color): void",
        "draw_triangle_outline": "function draw_triangle_outline(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, thickness: number, color: Color): void",
        "draw_ellipse_outline": "function draw_ellipse_outline(centerX: number, centerY: number, radiusX: number, radiusY: number, thickness: number, color: Color): void",
        "draw_circle_outline": "function draw_circle_outline(centerX: number, centerY: number, radius: number, thickness: number, color: Color): void",
        "draw_polygon_outline": "function draw_polygon_outline(points: Vector[], thickness: number, color: Color): void",
        "draw_arc_outline": "function draw_arc_outline(centerX: number, centerY: number, radius: number, startAngle: number, endAngle: number, segments: number, thickness: number, color: Color): void",
        "draw_rectangle_rounded_outline": "function draw_rectangle_rounded_outline(x: number, y: number, width: number, height: number, cornerRadius: number, thickness: number, color: Color): void",
        "draw_rectangle_outline_on_image": "function draw_rectangle_outline_on_image(destination: Image, posX: number, posY: number, width: number, height: number, thickness: number, color: Color): void",
        "draw_triangle_outline_on_image": "function draw_triangle_outline_on_image(destination: Image, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, thickness: number, color: Color): void",
        "draw_ellipse_outline_on_image": "function draw_ellipse_outline_on_image(destination: Image, centerX: number, centerY: number, radiusX: number, radiusY: number, thickness: number, color: Color): void",
        "draw_circle_outline_on_image": "function draw_circle_outline_on_image(destination: Image, centerX: number, centerY: number, radius: number, thickness: number, color: Color): void",
        "draw_polygon_outline_on_image": "function draw_polygon_outline_on_image(destination: Image, points: Vector[], thickness: number, color: Color): void",
        "draw_rectangle_rounded_outline_on_image": "function draw_rectangle_rounded_outline_on_image(destination: Image, x: number, y: number, width: number, height: number, cornerRadius: number, thickness: number, color: Color): void",
        "gui_begin_window": "function gui_begin_window(title: string, rect: Rectangle): boolean",
        "gui_end_window": "function gui_end_window(): void",
        "gui_button": "function gui_button(label: string): boolean",
        "gui_label": "function gui_label(text: string): void",
        "gui_text": "function gui_text(text: string): void",
        "gui_checkbox": "function gui_checkbox(label: string, state: boolean): boolean",
        "gui_slider": "function gui_slider(value: number, low: number, high: number): number",
        "gui_layout_row": "function gui_layout_row(widths: number[], height: number): void",
        "gui_end": "function gui_end(): void",
        "gui_draw": "function gui_draw(dst: Image): void",
        "key_pressed": "function key_pressed(key: Key): boolean",
        "key_down": "function key_down(key: Key): boolean",
        "key_released": "function key_released(key: Key): boolean",
        "key_up": "function key_up(key: Key): boolean",
        "gamepad_button_pressed": "function gamepad_button_pressed(gamepad: number, button: GamepadButton): boolean",
        "gamepad_button_down": "function gamepad_button_down(gamepad: number, button: GamepadButton): boolean",
        "gamepad_button_released": "function gamepad_button_released(gamepad: number, button: GamepadButton): boolean",
        "mouse_position": "function mouse_position(): Vector",
        "mouse_button_pressed": "function mouse_button_pressed(button: MouseButton): boolean",
        "mouse_button_down": "function mouse_button_down(button: MouseButton): boolean",
        "mouse_button_released": "function mouse_button_released(button: MouseButton): boolean",
        "mouse_button_up": "function mouse_button_up(button: MouseButton): boolean",
        "load_sound": "function load_sound(filename: string): Sound",
        "play_sound": "function play_sound(sound: Sound, loop: boolean): void",
        "stop_sound": "function stop_sound(sound: Sound): void",
        "unload_sound": "function unload_sound(sound: Sound): void",
        "tts_sound": "function tts_sound(text: string, phonetic: boolean, pitch: number, speed: number, throat: number, mouth: number, sing: boolean): Sound",
        "sfx_sound": "function sfx_sound(params: SfxParams): Sound",
        "sfx_generate": "function sfx_generate(type: SfxPresetType): SfxParams",
        "load_tilemap": "function load_tilemap(filename: string): Tilemap",
        "unload_tilemap": "function unload_tilemap(tilemap: Tilemap): void",
        "tile_update": "function tile_update(tilemap: Tilemap, deltaTime: number): void",
        "tile_map_size": "function tile_map_size(tilemap: Tilemap): Dimensions",
        "tile_tile_size": "function tile_tile_size(tilemap: Tilemap): Dimensions",
        "tile_map_prop": "function tile_map_prop(tilemap: Tilemap, name: string): TilemapProp",
        "tile_map_prop_count": "function tile_map_prop_count(tilemap: Tilemap): number",
        "tile_map_prop_at": "function tile_map_prop_at(tilemap: Tilemap, index: number): TilemapProp",
        "tile_draw": "function tile_draw(tilemap: Tilemap, posX: number, posY: number): void",
        "tile_draw_tint": "function tile_draw_tint(tilemap: Tilemap, posX: number, posY: number, tint: Color): void",
        "tile_draw_on_image": "function tile_draw_on_image(dst: Image, tilemap: Tilemap, posX: number, posY: number): void",
        "tilemap_image": "function tilemap_image(tilemap: Tilemap): Image",
        "tile_layer_count": "function tile_layer_count(tilemap: Tilemap): number",
        "tile_layer_index": "function tile_layer_index(tilemap: Tilemap, name: string): number",
        "tile_layer_name": "function tile_layer_name(tilemap: Tilemap, layer: number): string",
        "tile_layer_type": "function tile_layer_type(tilemap: Tilemap, layer: number): TileLayerKind",
        "tile_layer_size": "function tile_layer_size(tilemap: Tilemap, layer: number): Dimensions",
        "tile_layer_visible": "function tile_layer_visible(tilemap: Tilemap, layer: number): boolean",
        "tile_layer_prop": "function tile_layer_prop(tilemap: Tilemap, layer: number, name: string): TilemapProp",
        "tile_layer_prop_count": "function tile_layer_prop_count(tilemap: Tilemap, layer: number): number",
        "tile_layer_prop_at": "function tile_layer_prop_at(tilemap: Tilemap, layer: number, index: number): TilemapProp",
        "tile_draw_layer": "function tile_draw_layer(tilemap: Tilemap, layer: number, posX: number, posY: number): void",
        "tile_draw_layer_tint": "function tile_draw_layer_tint(tilemap: Tilemap, layer: number, posX: number, posY: number, tint: Color): void",
        "tile_draw_layer_on_image": "function tile_draw_layer_on_image(dst: Image, tilemap: Tilemap, layer: number, posX: number, posY: number): void",
        "tile_layer_image": "function tile_layer_image(tilemap: Tilemap, layer: number): Image",
        "tile_get_tile": "function tile_get_tile(tilemap: Tilemap, layer: number, column: number, row: number): number",
        "tile_set_tile": "function tile_set_tile(tilemap: Tilemap, layer: number, column: number, row: number, gid: number): void",
        "tile_draw_tile": "function tile_draw_tile(tilemap: Tilemap, gid: number, posX: number, posY: number): void",
        "tile_image": "function tile_image(tilemap: Tilemap, gid: number): Image",
        "tile_gid_prop": "function tile_gid_prop(tilemap: Tilemap, gid: number, name: string): TilemapProp",
        "tile_gid_prop_count": "function tile_gid_prop_count(tilemap: Tilemap, gid: number): number",
        "tile_gid_prop_at": "function tile_gid_prop_at(tilemap: Tilemap, gid: number, index: number): TilemapProp",
        "tile_object_count": "function tile_object_count(tilemap: Tilemap, layer: number): number",
        "tile_object": "function tile_object(tilemap: Tilemap, layer: number, index: number): TilemapObject",
        "tile_object_index": "function tile_object_index(tilemap: Tilemap, layer: number, name: string): number",
        "tile_object_prop": "function tile_object_prop(tilemap: Tilemap, layer: number, index: number, name: string): TilemapProp",
        "tile_object_prop_count": "function tile_object_prop_count(tilemap: Tilemap, layer: number, index: number): number",
        "tile_object_prop_at": "function tile_object_prop_at(tilemap: Tilemap, layer: number, index: number, propIndex: number): TilemapProp",
        "current_time": "function current_time(): bigint",
        "delta_time": "function delta_time(): number",
        "random_int": "function random_int(min: number, max: number): number",
        "random_seed_get": "function random_seed_get(): bigint",
        "random_seed_set": "function random_seed_set(seed: bigint): void"
      }
    },
    "python": {
      "id": "python",
      "binding": "carts/python/null0.pyi",
      "example": "carts/python/simple",
      "title": "Python",
      "image": "python",
      "kind": "interpreted",
      "file": "main.py",
      "highlight": "python",
      "callback": "def update():",
      "toolchain": "RustPython, baked into main.wasm",
      "notes": [
        "The API is plain globals - nothing to import. Structs are dicts, and array args know their own length.",
        "This is RustPython built without the stdlib: there is no `typing`, no `os`, no `json`.",
        "Drop `null0.pyi` next to `main.py` and open your cart with `TYPE_CHECKING = False` / `if TYPE_CHECKING: from null0 import *` for completion."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-python:latest",
      "decls": {
        "color_tint": "def color_tint(color: Color, tint: Color) -> Color",
        "color_fade": "def color_fade(color: Color, alpha: float) -> Color",
        "color_brightness": "def color_brightness(color: Color, factor: float) -> Color",
        "color_invert": "def color_invert(color: Color) -> Color",
        "color_alpha_blend": "def color_alpha_blend(dst: Color, src: Color) -> Color",
        "color_contrast": "def color_contrast(color: Color, contrast: float) -> Color",
        "color_bilinear_interpolate": "def color_bilinear_interpolate(color00: Color, color01: Color, color10: Color, color11: Color, coordinateX: float, coordinateY: float) -> Color",
        "new_image": "def new_image(width: int, height: int, color: Color) -> Image",
        "image_copy": "def image_copy(image: Image) -> Image",
        "image_subimage": "def image_subimage(image: Image, x: int, y: int, width: int, height: int) -> Image",
        "clear": "def clear(color: Color) -> None",
        "draw_point": "def draw_point(x: int, y: int, color: Color) -> None",
        "draw_line": "def draw_line(startPosX: int, startPosY: int, endPosX: int, endPosY: int, color: Color) -> None",
        "draw_rectangle": "def draw_rectangle(posX: int, posY: int, width: int, height: int, color: Color) -> None",
        "draw_triangle": "def draw_triangle(x1: int, y1: int, x2: int, y2: int, x3: int, y3: int, color: Color) -> None",
        "draw_ellipse": "def draw_ellipse(centerX: int, centerY: int, radiusX: int, radiusY: int, color: Color) -> None",
        "draw_circle": "def draw_circle(centerX: int, centerY: int, radius: int, color: Color) -> None",
        "draw_polygon": "def draw_polygon(points: list[Vector], color: Color) -> None",
        "draw_arc": "def draw_arc(centerX: int, centerY: int, radius: float, startAngle: float, endAngle: float, segments: int, color: Color) -> None",
        "draw_rectangle_rounded": "def draw_rectangle_rounded(x: int, y: int, width: int, height: int, cornerRadius: int, color: Color) -> None",
        "draw_image": "def draw_image(src: Image, posX: int, posY: int) -> None",
        "draw_image_tint": "def draw_image_tint(src: Image, posX: int, posY: int, tint: Color) -> None",
        "draw_image_rotated": "def draw_image_rotated(src: Image, posX: int, posY: int, degrees: float, offsetX: float, offsetY: float, filter: ImageFilter) -> None",
        "draw_image_flipped": "def draw_image_flipped(src: Image, posX: int, posY: int, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) -> None",
        "draw_image_scaled": "def draw_image_scaled(src: Image, posX: int, posY: int, scaleX: float, scaleY: float, offsetX: float, offsetY: float, filter: ImageFilter) -> None",
        "draw_text": "def draw_text(font: Font, text: str, posX: int, posY: int, color: Color) -> None",
        "save_image": "def save_image(image: Image, filename: str) -> None",
        "load_image": "def load_image(filename: str) -> Image",
        "image_resize": "def image_resize(image: Image, newWidth: int, newHeight: int, filter: ImageFilter) -> Image",
        "image_scale": "def image_scale(image: Image, scaleX: float, scaleY: float, filter: ImageFilter) -> Image",
        "image_color_replace": "def image_color_replace(image: Image, color: Color, replace: Color) -> None",
        "image_color_tint": "def image_color_tint(image: Image, color: Color) -> None",
        "image_color_fade": "def image_color_fade(image: Image, alpha: float) -> None",
        "font_copy": "def font_copy(font: Font) -> Font",
        "font_scale": "def font_scale(font: Font, scaleX: float, scaleY: float, filter: ImageFilter) -> Font",
        "load_font_bmf": "def load_font_bmf(filename: str, characters: str) -> Font",
        "load_font_bmf_from_image": "def load_font_bmf_from_image(image: Image, characters: str) -> Font",
        "measure_text": "def measure_text(font: Font, text: str, textLength: int) -> Dimensions",
        "measure_image": "def measure_image(image: Image) -> Dimensions",
        "load_font_tty": "def load_font_tty(filename: str, glyphWidth: int, glyphHeight: int, characters: str) -> Font",
        "load_font_tty_from_image": "def load_font_tty_from_image(image: Image, glyphWidth: int, glyphHeight: int, characters: str) -> Font",
        "load_font_ttf": "def load_font_ttf(filename: str, fontSize: int) -> Font",
        "image_color_invert": "def image_color_invert(image: Image) -> None",
        "image_alpha_border": "def image_alpha_border(image: Image, threshold: float) -> Rectangle",
        "image_crop": "def image_crop(image: Image, x: int, y: int, width: int, height: int) -> None",
        "image_alpha_crop": "def image_alpha_crop(image: Image, threshold: float) -> None",
        "image_color_brightness": "def image_color_brightness(image: Image, factor: float) -> None",
        "image_flip": "def image_flip(image: Image, horizontal: bool, vertical: bool) -> None",
        "image_color_contrast": "def image_color_contrast(image: Image, contrast: float) -> None",
        "image_alpha_mask": "def image_alpha_mask(image: Image, alphaMask: Image, posX: int, posY: int) -> None",
        "image_rotate": "def image_rotate(image: Image, degrees: float, filter: ImageFilter) -> Image",
        "image_gradient": "def image_gradient(width: int, height: int, topLeft: Color, topRight: Color, bottomLeft: Color, bottomRight: Color) -> Image",
        "unload_image": "def unload_image(image: Image) -> None",
        "unload_font": "def unload_font(font: Font) -> None",
        "clear_image": "def clear_image(destination: Image, color: Color) -> None",
        "draw_point_on_image": "def draw_point_on_image(destination: Image, x: int, y: int, color: Color) -> None",
        "draw_line_on_image": "def draw_line_on_image(destination: Image, startPosX: int, startPosY: int, endPosX: int, endPosY: int, color: Color) -> None",
        "draw_rectangle_on_image": "def draw_rectangle_on_image(destination: Image, posX: int, posY: int, width: int, height: int, color: Color) -> None",
        "draw_triangle_on_image": "def draw_triangle_on_image(destination: Image, x1: int, y1: int, x2: int, y2: int, x3: int, y3: int, color: Color) -> None",
        "draw_ellipse_on_image": "def draw_ellipse_on_image(destination: Image, centerX: int, centerY: int, radiusX: int, radiusY: int, color: Color) -> None",
        "draw_circle_on_image": "def draw_circle_on_image(destination: Image, centerX: int, centerY: int, radius: int, color: Color) -> None",
        "draw_polygon_on_image": "def draw_polygon_on_image(destination: Image, points: list[Vector], color: Color) -> None",
        "draw_rectangle_rounded_on_image": "def draw_rectangle_rounded_on_image(destination: Image, x: int, y: int, width: int, height: int, cornerRadius: int, color: Color) -> None",
        "draw_image_on_image": "def draw_image_on_image(destination: Image, src: Image, posX: int, posY: int) -> None",
        "draw_image_tint_on_image": "def draw_image_tint_on_image(destination: Image, src: Image, posX: int, posY: int, tint: Color) -> None",
        "draw_image_rotated_on_image": "def draw_image_rotated_on_image(destination: Image, src: Image, posX: int, posY: int, degrees: float, offsetX: float, offsetY: float, filter: ImageFilter) -> None",
        "draw_image_flipped_on_image": "def draw_image_flipped_on_image(destination: Image, src: Image, posX: int, posY: int, flipHorizontal: bool, flipVertical: bool, flipDiagonal: bool) -> None",
        "draw_image_scaled_on_image": "def draw_image_scaled_on_image(destination: Image, src: Image, posX: int, posY: int, scaleX: float, scaleY: float, offsetX: float, offsetY: float, filter: ImageFilter) -> None",
        "draw_text_on_image": "def draw_text_on_image(destination: Image, font: Font, text: str, posX: int, posY: int, color: Color) -> None",
        "draw_rectangle_outline": "def draw_rectangle_outline(posX: int, posY: int, width: int, height: int, thickness: int, color: Color) -> None",
        "draw_triangle_outline": "def draw_triangle_outline(x1: int, y1: int, x2: int, y2: int, x3: int, y3: int, thickness: int, color: Color) -> None",
        "draw_ellipse_outline": "def draw_ellipse_outline(centerX: int, centerY: int, radiusX: int, radiusY: int, thickness: int, color: Color) -> None",
        "draw_circle_outline": "def draw_circle_outline(centerX: int, centerY: int, radius: int, thickness: int, color: Color) -> None",
        "draw_polygon_outline": "def draw_polygon_outline(points: list[Vector], thickness: int, color: Color) -> None",
        "draw_arc_outline": "def draw_arc_outline(centerX: int, centerY: int, radius: float, startAngle: float, endAngle: float, segments: int, thickness: int, color: Color) -> None",
        "draw_rectangle_rounded_outline": "def draw_rectangle_rounded_outline(x: int, y: int, width: int, height: int, cornerRadius: int, thickness: int, color: Color) -> None",
        "draw_rectangle_outline_on_image": "def draw_rectangle_outline_on_image(destination: Image, posX: int, posY: int, width: int, height: int, thickness: int, color: Color) -> None",
        "draw_triangle_outline_on_image": "def draw_triangle_outline_on_image(destination: Image, x1: int, y1: int, x2: int, y2: int, x3: int, y3: int, thickness: int, color: Color) -> None",
        "draw_ellipse_outline_on_image": "def draw_ellipse_outline_on_image(destination: Image, centerX: int, centerY: int, radiusX: int, radiusY: int, thickness: int, color: Color) -> None",
        "draw_circle_outline_on_image": "def draw_circle_outline_on_image(destination: Image, centerX: int, centerY: int, radius: int, thickness: int, color: Color) -> None",
        "draw_polygon_outline_on_image": "def draw_polygon_outline_on_image(destination: Image, points: list[Vector], thickness: int, color: Color) -> None",
        "draw_rectangle_rounded_outline_on_image": "def draw_rectangle_rounded_outline_on_image(destination: Image, x: int, y: int, width: int, height: int, cornerRadius: int, thickness: int, color: Color) -> None",
        "gui_begin_window": "def gui_begin_window(title: str, rect: Rectangle) -> bool",
        "gui_end_window": "def gui_end_window() -> None",
        "gui_button": "def gui_button(label: str) -> bool",
        "gui_label": "def gui_label(text: str) -> None",
        "gui_text": "def gui_text(text: str) -> None",
        "gui_checkbox": "def gui_checkbox(label: str, state: bool) -> bool",
        "gui_slider": "def gui_slider(value: float, low: float, high: float) -> float",
        "gui_layout_row": "def gui_layout_row(widths: list[int], height: int) -> None",
        "gui_end": "def gui_end() -> None",
        "gui_draw": "def gui_draw(dst: Image) -> None",
        "key_pressed": "def key_pressed(key: Key) -> bool",
        "key_down": "def key_down(key: Key) -> bool",
        "key_released": "def key_released(key: Key) -> bool",
        "key_up": "def key_up(key: Key) -> bool",
        "gamepad_button_pressed": "def gamepad_button_pressed(gamepad: int, button: GamepadButton) -> bool",
        "gamepad_button_down": "def gamepad_button_down(gamepad: int, button: GamepadButton) -> bool",
        "gamepad_button_released": "def gamepad_button_released(gamepad: int, button: GamepadButton) -> bool",
        "mouse_position": "def mouse_position() -> Vector",
        "mouse_button_pressed": "def mouse_button_pressed(button: MouseButton) -> bool",
        "mouse_button_down": "def mouse_button_down(button: MouseButton) -> bool",
        "mouse_button_released": "def mouse_button_released(button: MouseButton) -> bool",
        "mouse_button_up": "def mouse_button_up(button: MouseButton) -> bool",
        "load_sound": "def load_sound(filename: str) -> Sound",
        "play_sound": "def play_sound(sound: Sound, loop: bool) -> None",
        "stop_sound": "def stop_sound(sound: Sound) -> None",
        "unload_sound": "def unload_sound(sound: Sound) -> None",
        "tts_sound": "def tts_sound(text: str, phonetic: bool, pitch: int, speed: int, throat: int, mouth: int, sing: bool) -> Sound",
        "sfx_sound": "def sfx_sound(params: SfxParams) -> Sound",
        "sfx_generate": "def sfx_generate(type: SfxPresetType) -> SfxParams",
        "load_tilemap": "def load_tilemap(filename: str) -> Tilemap",
        "unload_tilemap": "def unload_tilemap(tilemap: Tilemap) -> None",
        "tile_update": "def tile_update(tilemap: Tilemap, deltaTime: float) -> None",
        "tile_map_size": "def tile_map_size(tilemap: Tilemap) -> Dimensions",
        "tile_tile_size": "def tile_tile_size(tilemap: Tilemap) -> Dimensions",
        "tile_map_prop": "def tile_map_prop(tilemap: Tilemap, name: str) -> TilemapProp",
        "tile_map_prop_count": "def tile_map_prop_count(tilemap: Tilemap) -> int",
        "tile_map_prop_at": "def tile_map_prop_at(tilemap: Tilemap, index: int) -> TilemapProp",
        "tile_draw": "def tile_draw(tilemap: Tilemap, posX: int, posY: int) -> None",
        "tile_draw_tint": "def tile_draw_tint(tilemap: Tilemap, posX: int, posY: int, tint: Color) -> None",
        "tile_draw_on_image": "def tile_draw_on_image(dst: Image, tilemap: Tilemap, posX: int, posY: int) -> None",
        "tilemap_image": "def tilemap_image(tilemap: Tilemap) -> Image",
        "tile_layer_count": "def tile_layer_count(tilemap: Tilemap) -> int",
        "tile_layer_index": "def tile_layer_index(tilemap: Tilemap, name: str) -> int",
        "tile_layer_name": "def tile_layer_name(tilemap: Tilemap, layer: int) -> str",
        "tile_layer_type": "def tile_layer_type(tilemap: Tilemap, layer: int) -> TileLayerKind",
        "tile_layer_size": "def tile_layer_size(tilemap: Tilemap, layer: int) -> Dimensions",
        "tile_layer_visible": "def tile_layer_visible(tilemap: Tilemap, layer: int) -> bool",
        "tile_layer_prop": "def tile_layer_prop(tilemap: Tilemap, layer: int, name: str) -> TilemapProp",
        "tile_layer_prop_count": "def tile_layer_prop_count(tilemap: Tilemap, layer: int) -> int",
        "tile_layer_prop_at": "def tile_layer_prop_at(tilemap: Tilemap, layer: int, index: int) -> TilemapProp",
        "tile_draw_layer": "def tile_draw_layer(tilemap: Tilemap, layer: int, posX: int, posY: int) -> None",
        "tile_draw_layer_tint": "def tile_draw_layer_tint(tilemap: Tilemap, layer: int, posX: int, posY: int, tint: Color) -> None",
        "tile_draw_layer_on_image": "def tile_draw_layer_on_image(dst: Image, tilemap: Tilemap, layer: int, posX: int, posY: int) -> None",
        "tile_layer_image": "def tile_layer_image(tilemap: Tilemap, layer: int) -> Image",
        "tile_get_tile": "def tile_get_tile(tilemap: Tilemap, layer: int, column: int, row: int) -> int",
        "tile_set_tile": "def tile_set_tile(tilemap: Tilemap, layer: int, column: int, row: int, gid: int) -> None",
        "tile_draw_tile": "def tile_draw_tile(tilemap: Tilemap, gid: int, posX: int, posY: int) -> None",
        "tile_image": "def tile_image(tilemap: Tilemap, gid: int) -> Image",
        "tile_gid_prop": "def tile_gid_prop(tilemap: Tilemap, gid: int, name: str) -> TilemapProp",
        "tile_gid_prop_count": "def tile_gid_prop_count(tilemap: Tilemap, gid: int) -> int",
        "tile_gid_prop_at": "def tile_gid_prop_at(tilemap: Tilemap, gid: int, index: int) -> TilemapProp",
        "tile_object_count": "def tile_object_count(tilemap: Tilemap, layer: int) -> int",
        "tile_object": "def tile_object(tilemap: Tilemap, layer: int, index: int) -> TilemapObject",
        "tile_object_index": "def tile_object_index(tilemap: Tilemap, layer: int, name: str) -> int",
        "tile_object_prop": "def tile_object_prop(tilemap: Tilemap, layer: int, index: int, name: str) -> TilemapProp",
        "tile_object_prop_count": "def tile_object_prop_count(tilemap: Tilemap, layer: int, index: int) -> int",
        "tile_object_prop_at": "def tile_object_prop_at(tilemap: Tilemap, layer: int, index: int, propIndex: int) -> TilemapProp",
        "current_time": "def current_time() -> int",
        "delta_time": "def delta_time() -> float",
        "random_int": "def random_int(min: int, max: int) -> int",
        "random_seed_get": "def random_seed_get() -> int",
        "random_seed_set": "def random_seed_set(seed: int) -> None"
      }
    },
    "lua": {
      "id": "lua",
      "binding": "carts/lua/null0.lua",
      "example": "carts/lua/simple",
      "title": "Lua",
      "image": "lua",
      "kind": "interpreted",
      "file": "main.lua",
      "highlight": "lua",
      "callback": "function update() end",
      "toolchain": "GopherLua, baked into main.wasm",
      "notes": [
        "The API is plain globals, structs are tables, and `require` works for extra cart files.",
        "GopherLua, not C Lua - the host interpreter has no exception-handling, which C Lua needs.",
        "`null0.lua` is LuaLS definitions for your editor; it is not shipped inside the cart."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-lua:latest",
      "decls": {
        "color_tint": "function color_tint(color, tint) end",
        "color_fade": "function color_fade(color, alpha) end",
        "color_brightness": "function color_brightness(color, factor) end",
        "color_invert": "function color_invert(color) end",
        "color_alpha_blend": "function color_alpha_blend(dst, src) end",
        "color_contrast": "function color_contrast(color, contrast) end",
        "color_bilinear_interpolate": "function color_bilinear_interpolate(color00, color01, color10, color11, coordinateX, coordinateY) end",
        "new_image": "function new_image(width, height, color) end",
        "image_copy": "function image_copy(image) end",
        "image_subimage": "function image_subimage(image, x, y, width, height) end",
        "clear": "function clear(color) end",
        "draw_point": "function draw_point(x, y, color) end",
        "draw_line": "function draw_line(startPosX, startPosY, endPosX, endPosY, color) end",
        "draw_rectangle": "function draw_rectangle(posX, posY, width, height, color) end",
        "draw_triangle": "function draw_triangle(x1, y1, x2, y2, x3, y3, color) end",
        "draw_ellipse": "function draw_ellipse(centerX, centerY, radiusX, radiusY, color) end",
        "draw_circle": "function draw_circle(centerX, centerY, radius, color) end",
        "draw_polygon": "function draw_polygon(points, color) end",
        "draw_arc": "function draw_arc(centerX, centerY, radius, startAngle, endAngle, segments, color) end",
        "draw_rectangle_rounded": "function draw_rectangle_rounded(x, y, width, height, cornerRadius, color) end",
        "draw_image": "function draw_image(src, posX, posY) end",
        "draw_image_tint": "function draw_image_tint(src, posX, posY, tint) end",
        "draw_image_rotated": "function draw_image_rotated(src, posX, posY, degrees, offsetX, offsetY, filter) end",
        "draw_image_flipped": "function draw_image_flipped(src, posX, posY, flipHorizontal, flipVertical, flipDiagonal) end",
        "draw_image_scaled": "function draw_image_scaled(src, posX, posY, scaleX, scaleY, offsetX, offsetY, filter) end",
        "draw_text": "function draw_text(font, text, posX, posY, color) end",
        "save_image": "function save_image(image, filename) end",
        "load_image": "function load_image(filename) end",
        "image_resize": "function image_resize(image, newWidth, newHeight, filter) end",
        "image_scale": "function image_scale(image, scaleX, scaleY, filter) end",
        "image_color_replace": "function image_color_replace(image, color, replace) end",
        "image_color_tint": "function image_color_tint(image, color) end",
        "image_color_fade": "function image_color_fade(image, alpha) end",
        "font_copy": "function font_copy(font) end",
        "font_scale": "function font_scale(font, scaleX, scaleY, filter) end",
        "load_font_bmf": "function load_font_bmf(filename, characters) end",
        "load_font_bmf_from_image": "function load_font_bmf_from_image(image, characters) end",
        "measure_text": "function measure_text(font, text, textLength) end",
        "measure_image": "function measure_image(image) end",
        "load_font_tty": "function load_font_tty(filename, glyphWidth, glyphHeight, characters) end",
        "load_font_tty_from_image": "function load_font_tty_from_image(image, glyphWidth, glyphHeight, characters) end",
        "load_font_ttf": "function load_font_ttf(filename, fontSize) end",
        "image_color_invert": "function image_color_invert(image) end",
        "image_alpha_border": "function image_alpha_border(image, threshold) end",
        "image_crop": "function image_crop(image, x, y, width, height) end",
        "image_alpha_crop": "function image_alpha_crop(image, threshold) end",
        "image_color_brightness": "function image_color_brightness(image, factor) end",
        "image_flip": "function image_flip(image, horizontal, vertical) end",
        "image_color_contrast": "function image_color_contrast(image, contrast) end",
        "image_alpha_mask": "function image_alpha_mask(image, alphaMask, posX, posY) end",
        "image_rotate": "function image_rotate(image, degrees, filter) end",
        "image_gradient": "function image_gradient(width, height, topLeft, topRight, bottomLeft, bottomRight) end",
        "unload_image": "function unload_image(image) end",
        "unload_font": "function unload_font(font) end",
        "clear_image": "function clear_image(destination, color) end",
        "draw_point_on_image": "function draw_point_on_image(destination, x, y, color) end",
        "draw_line_on_image": "function draw_line_on_image(destination, startPosX, startPosY, endPosX, endPosY, color) end",
        "draw_rectangle_on_image": "function draw_rectangle_on_image(destination, posX, posY, width, height, color) end",
        "draw_triangle_on_image": "function draw_triangle_on_image(destination, x1, y1, x2, y2, x3, y3, color) end",
        "draw_ellipse_on_image": "function draw_ellipse_on_image(destination, centerX, centerY, radiusX, radiusY, color) end",
        "draw_circle_on_image": "function draw_circle_on_image(destination, centerX, centerY, radius, color) end",
        "draw_polygon_on_image": "function draw_polygon_on_image(destination, points, color) end",
        "draw_rectangle_rounded_on_image": "function draw_rectangle_rounded_on_image(destination, x, y, width, height, cornerRadius, color) end",
        "draw_image_on_image": "function draw_image_on_image(destination, src, posX, posY) end",
        "draw_image_tint_on_image": "function draw_image_tint_on_image(destination, src, posX, posY, tint) end",
        "draw_image_rotated_on_image": "function draw_image_rotated_on_image(destination, src, posX, posY, degrees, offsetX, offsetY, filter) end",
        "draw_image_flipped_on_image": "function draw_image_flipped_on_image(destination, src, posX, posY, flipHorizontal, flipVertical, flipDiagonal) end",
        "draw_image_scaled_on_image": "function draw_image_scaled_on_image(destination, src, posX, posY, scaleX, scaleY, offsetX, offsetY, filter) end",
        "draw_text_on_image": "function draw_text_on_image(destination, font, text, posX, posY, color) end",
        "draw_rectangle_outline": "function draw_rectangle_outline(posX, posY, width, height, thickness, color) end",
        "draw_triangle_outline": "function draw_triangle_outline(x1, y1, x2, y2, x3, y3, thickness, color) end",
        "draw_ellipse_outline": "function draw_ellipse_outline(centerX, centerY, radiusX, radiusY, thickness, color) end",
        "draw_circle_outline": "function draw_circle_outline(centerX, centerY, radius, thickness, color) end",
        "draw_polygon_outline": "function draw_polygon_outline(points, thickness, color) end",
        "draw_arc_outline": "function draw_arc_outline(centerX, centerY, radius, startAngle, endAngle, segments, thickness, color) end",
        "draw_rectangle_rounded_outline": "function draw_rectangle_rounded_outline(x, y, width, height, cornerRadius, thickness, color) end",
        "draw_rectangle_outline_on_image": "function draw_rectangle_outline_on_image(destination, posX, posY, width, height, thickness, color) end",
        "draw_triangle_outline_on_image": "function draw_triangle_outline_on_image(destination, x1, y1, x2, y2, x3, y3, thickness, color) end",
        "draw_ellipse_outline_on_image": "function draw_ellipse_outline_on_image(destination, centerX, centerY, radiusX, radiusY, thickness, color) end",
        "draw_circle_outline_on_image": "function draw_circle_outline_on_image(destination, centerX, centerY, radius, thickness, color) end",
        "draw_polygon_outline_on_image": "function draw_polygon_outline_on_image(destination, points, thickness, color) end",
        "draw_rectangle_rounded_outline_on_image": "function draw_rectangle_rounded_outline_on_image(destination, x, y, width, height, cornerRadius, thickness, color) end",
        "gui_begin_window": "function gui_begin_window(title, rect) end",
        "gui_end_window": "function gui_end_window() end",
        "gui_button": "function gui_button(label) end",
        "gui_label": "function gui_label(text) end",
        "gui_text": "function gui_text(text) end",
        "gui_checkbox": "function gui_checkbox(label, state) end",
        "gui_slider": "function gui_slider(value, low, high) end",
        "gui_layout_row": "function gui_layout_row(widths, height) end",
        "gui_end": "function gui_end() end",
        "gui_draw": "function gui_draw(dst) end",
        "key_pressed": "function key_pressed(key) end",
        "key_down": "function key_down(key) end",
        "key_released": "function key_released(key) end",
        "key_up": "function key_up(key) end",
        "gamepad_button_pressed": "function gamepad_button_pressed(gamepad, button) end",
        "gamepad_button_down": "function gamepad_button_down(gamepad, button) end",
        "gamepad_button_released": "function gamepad_button_released(gamepad, button) end",
        "mouse_position": "function mouse_position() end",
        "mouse_button_pressed": "function mouse_button_pressed(button) end",
        "mouse_button_down": "function mouse_button_down(button) end",
        "mouse_button_released": "function mouse_button_released(button) end",
        "mouse_button_up": "function mouse_button_up(button) end",
        "load_sound": "function load_sound(filename) end",
        "play_sound": "function play_sound(sound, loop) end",
        "stop_sound": "function stop_sound(sound) end",
        "unload_sound": "function unload_sound(sound) end",
        "tts_sound": "function tts_sound(text, phonetic, pitch, speed, throat, mouth, sing) end",
        "sfx_sound": "function sfx_sound(params) end",
        "sfx_generate": "function sfx_generate(type) end",
        "load_tilemap": "function load_tilemap(filename) end",
        "unload_tilemap": "function unload_tilemap(tilemap) end",
        "tile_update": "function tile_update(tilemap, deltaTime) end",
        "tile_map_size": "function tile_map_size(tilemap) end",
        "tile_tile_size": "function tile_tile_size(tilemap) end",
        "tile_map_prop": "function tile_map_prop(tilemap, name) end",
        "tile_map_prop_count": "function tile_map_prop_count(tilemap) end",
        "tile_map_prop_at": "function tile_map_prop_at(tilemap, index) end",
        "tile_draw": "function tile_draw(tilemap, posX, posY) end",
        "tile_draw_tint": "function tile_draw_tint(tilemap, posX, posY, tint) end",
        "tile_draw_on_image": "function tile_draw_on_image(dst, tilemap, posX, posY) end",
        "tilemap_image": "function tilemap_image(tilemap) end",
        "tile_layer_count": "function tile_layer_count(tilemap) end",
        "tile_layer_index": "function tile_layer_index(tilemap, name) end",
        "tile_layer_name": "function tile_layer_name(tilemap, layer) end",
        "tile_layer_type": "function tile_layer_type(tilemap, layer) end",
        "tile_layer_size": "function tile_layer_size(tilemap, layer) end",
        "tile_layer_visible": "function tile_layer_visible(tilemap, layer) end",
        "tile_layer_prop": "function tile_layer_prop(tilemap, layer, name) end",
        "tile_layer_prop_count": "function tile_layer_prop_count(tilemap, layer) end",
        "tile_layer_prop_at": "function tile_layer_prop_at(tilemap, layer, index) end",
        "tile_draw_layer": "function tile_draw_layer(tilemap, layer, posX, posY) end",
        "tile_draw_layer_tint": "function tile_draw_layer_tint(tilemap, layer, posX, posY, tint) end",
        "tile_draw_layer_on_image": "function tile_draw_layer_on_image(dst, tilemap, layer, posX, posY) end",
        "tile_layer_image": "function tile_layer_image(tilemap, layer) end",
        "tile_get_tile": "function tile_get_tile(tilemap, layer, column, row) end",
        "tile_set_tile": "function tile_set_tile(tilemap, layer, column, row, gid) end",
        "tile_draw_tile": "function tile_draw_tile(tilemap, gid, posX, posY) end",
        "tile_image": "function tile_image(tilemap, gid) end",
        "tile_gid_prop": "function tile_gid_prop(tilemap, gid, name) end",
        "tile_gid_prop_count": "function tile_gid_prop_count(tilemap, gid) end",
        "tile_gid_prop_at": "function tile_gid_prop_at(tilemap, gid, index) end",
        "tile_object_count": "function tile_object_count(tilemap, layer) end",
        "tile_object": "function tile_object(tilemap, layer, index) end",
        "tile_object_index": "function tile_object_index(tilemap, layer, name) end",
        "tile_object_prop": "function tile_object_prop(tilemap, layer, index, name) end",
        "tile_object_prop_count": "function tile_object_prop_count(tilemap, layer, index) end",
        "tile_object_prop_at": "function tile_object_prop_at(tilemap, layer, index, propIndex) end",
        "current_time": "function current_time() end",
        "delta_time": "function delta_time() end",
        "random_int": "function random_int(min, max) end",
        "random_seed_get": "function random_seed_get() end",
        "random_seed_set": "function random_seed_set(seed) end",
        "load": "function load() end",
        "update": "function update() end",
        "unload": "function unload() end",
        "buttonUp": "function buttonUp(button, player) end",
        "buttonDown": "function buttonDown(button, player) end",
        "keyUp": "function keyUp(key) end",
        "keyDown": "function keyDown(key) end",
        "mouseDown": "function mouseDown(button) end",
        "mouseUp": "function mouseUp(button) end",
        "mouseMoved": "function mouseMoved(x, y) end"
      }
    },
    "wren": {
      "id": "wren",
      "binding": "carts/wren/null0.wren",
      "example": "carts/wren/simple",
      "title": "Wren",
      "image": "wren",
      "kind": "interpreted",
      "file": "main.wren",
      "highlight": "dart",
      "callback": "var update = Fn.new {}",
      "toolchain": "wren, baked into main.wasm",
      "notes": [
        "`import \"null0\" for Null0, BLUE` - the API hangs off the `Null0` class.",
        "Callbacks are `Fn` values assigned to top-level variables."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-wren:latest",
      "decls": {
        "fromValue": "static fromValue(v)",
        "fromList": "static fromList(l)",
        "color_tint": "static color_tint(color, tint)",
        "color_fade": "static color_fade(color, alpha)",
        "color_brightness": "static color_brightness(color, factor)",
        "color_invert": "static color_invert(color)",
        "color_alpha_blend": "static color_alpha_blend(dst, src)",
        "color_contrast": "static color_contrast(color, contrast)",
        "color_bilinear_interpolate": "static color_bilinear_interpolate(color00, color01, color10, color11, coordinateX, coordinateY)",
        "new_image": "static new_image(width, height, color)",
        "image_copy": "static image_copy(image)",
        "image_subimage": "static image_subimage(image, x, y, width, height)",
        "clear": "static clear(color)",
        "draw_point": "static draw_point(x, y, color)",
        "draw_line": "static draw_line(startPosX, startPosY, endPosX, endPosY, color)",
        "draw_rectangle": "static draw_rectangle(posX, posY, width, height, color)",
        "draw_triangle": "static draw_triangle(x1, y1, x2, y2, x3, y3, color)",
        "draw_ellipse": "static draw_ellipse(centerX, centerY, radiusX, radiusY, color)",
        "draw_circle": "static draw_circle(centerX, centerY, radius, color)",
        "draw_polygon": "static draw_polygon(points, color) {",
        "draw_arc": "static draw_arc(centerX, centerY, radius, startAngle, endAngle, segments, color)",
        "draw_rectangle_rounded": "static draw_rectangle_rounded(x, y, width, height, cornerRadius, color)",
        "draw_image": "static draw_image(src, posX, posY)",
        "draw_image_tint": "static draw_image_tint(src, posX, posY, tint)",
        "draw_image_rotated": "static draw_image_rotated(src, posX, posY, degrees, offsetX, offsetY, filter)",
        "draw_image_flipped": "static draw_image_flipped(src, posX, posY, flipHorizontal, flipVertical, flipDiagonal)",
        "draw_image_scaled": "static draw_image_scaled(src, posX, posY, scaleX, scaleY, offsetX, offsetY, filter)",
        "draw_text": "static draw_text(font, text, posX, posY, color)",
        "save_image": "static save_image(image, filename)",
        "load_image": "static load_image(filename)",
        "image_resize": "static image_resize(image, newWidth, newHeight, filter)",
        "image_scale": "static image_scale(image, scaleX, scaleY, filter)",
        "image_color_replace": "static image_color_replace(image, color, replace)",
        "image_color_tint": "static image_color_tint(image, color)",
        "image_color_fade": "static image_color_fade(image, alpha)",
        "font_copy": "static font_copy(font)",
        "font_scale": "static font_scale(font, scaleX, scaleY, filter)",
        "load_font_bmf": "static load_font_bmf(filename, characters)",
        "load_font_bmf_from_image": "static load_font_bmf_from_image(image, characters)",
        "measure_text": "static measure_text(font, text, textLength)",
        "measure_image": "static measure_image(image)",
        "load_font_tty": "static load_font_tty(filename, glyphWidth, glyphHeight, characters)",
        "load_font_tty_from_image": "static load_font_tty_from_image(image, glyphWidth, glyphHeight, characters)",
        "load_font_ttf": "static load_font_ttf(filename, fontSize)",
        "image_color_invert": "static image_color_invert(image)",
        "image_alpha_border": "static image_alpha_border(image, threshold)",
        "image_crop": "static image_crop(image, x, y, width, height)",
        "image_alpha_crop": "static image_alpha_crop(image, threshold)",
        "image_color_brightness": "static image_color_brightness(image, factor)",
        "image_flip": "static image_flip(image, horizontal, vertical)",
        "image_color_contrast": "static image_color_contrast(image, contrast)",
        "image_alpha_mask": "static image_alpha_mask(image, alphaMask, posX, posY)",
        "image_rotate": "static image_rotate(image, degrees, filter)",
        "image_gradient": "static image_gradient(width, height, topLeft, topRight, bottomLeft, bottomRight)",
        "unload_image": "static unload_image(image)",
        "unload_font": "static unload_font(font)",
        "clear_image": "static clear_image(destination, color)",
        "draw_point_on_image": "static draw_point_on_image(destination, x, y, color)",
        "draw_line_on_image": "static draw_line_on_image(destination, startPosX, startPosY, endPosX, endPosY, color)",
        "draw_rectangle_on_image": "static draw_rectangle_on_image(destination, posX, posY, width, height, color)",
        "draw_triangle_on_image": "static draw_triangle_on_image(destination, x1, y1, x2, y2, x3, y3, color)",
        "draw_ellipse_on_image": "static draw_ellipse_on_image(destination, centerX, centerY, radiusX, radiusY, color)",
        "draw_circle_on_image": "static draw_circle_on_image(destination, centerX, centerY, radius, color)",
        "draw_polygon_on_image": "static draw_polygon_on_image(destination, points, color) {",
        "draw_rectangle_rounded_on_image": "static draw_rectangle_rounded_on_image(destination, x, y, width, height, cornerRadius, color)",
        "draw_image_on_image": "static draw_image_on_image(destination, src, posX, posY)",
        "draw_image_tint_on_image": "static draw_image_tint_on_image(destination, src, posX, posY, tint)",
        "draw_image_rotated_on_image": "static draw_image_rotated_on_image(destination, src, posX, posY, degrees, offsetX, offsetY, filter)",
        "draw_image_flipped_on_image": "static draw_image_flipped_on_image(destination, src, posX, posY, flipHorizontal, flipVertical, flipDiagonal)",
        "draw_image_scaled_on_image": "static draw_image_scaled_on_image(destination, src, posX, posY, scaleX, scaleY, offsetX, offsetY, filter)",
        "draw_text_on_image": "static draw_text_on_image(destination, font, text, posX, posY, color)",
        "draw_rectangle_outline": "static draw_rectangle_outline(posX, posY, width, height, thickness, color)",
        "draw_triangle_outline": "static draw_triangle_outline(x1, y1, x2, y2, x3, y3, thickness, color)",
        "draw_ellipse_outline": "static draw_ellipse_outline(centerX, centerY, radiusX, radiusY, thickness, color)",
        "draw_circle_outline": "static draw_circle_outline(centerX, centerY, radius, thickness, color)",
        "draw_polygon_outline": "static draw_polygon_outline(points, thickness, color) {",
        "draw_arc_outline": "static draw_arc_outline(centerX, centerY, radius, startAngle, endAngle, segments, thickness, color)",
        "draw_rectangle_rounded_outline": "static draw_rectangle_rounded_outline(x, y, width, height, cornerRadius, thickness, color)",
        "draw_rectangle_outline_on_image": "static draw_rectangle_outline_on_image(destination, posX, posY, width, height, thickness, color)",
        "draw_triangle_outline_on_image": "static draw_triangle_outline_on_image(destination, x1, y1, x2, y2, x3, y3, thickness, color)",
        "draw_ellipse_outline_on_image": "static draw_ellipse_outline_on_image(destination, centerX, centerY, radiusX, radiusY, thickness, color)",
        "draw_circle_outline_on_image": "static draw_circle_outline_on_image(destination, centerX, centerY, radius, thickness, color)",
        "draw_polygon_outline_on_image": "static draw_polygon_outline_on_image(destination, points, thickness, color) {",
        "draw_rectangle_rounded_outline_on_image": "static draw_rectangle_rounded_outline_on_image(destination, x, y, width, height, cornerRadius, thickness, color)",
        "gui_begin_window": "static gui_begin_window(title, rect)",
        "gui_end_window": "static gui_end_window",
        "gui_button": "static gui_button(label)",
        "gui_label": "static gui_label(text)",
        "gui_text": "static gui_text(text)",
        "gui_checkbox": "static gui_checkbox(label, state)",
        "gui_slider": "static gui_slider(value, low, high)",
        "gui_layout_row": "static gui_layout_row(widths, height)",
        "gui_end": "static gui_end",
        "gui_draw": "static gui_draw(dst)",
        "key_pressed": "static key_pressed(key)",
        "key_down": "static key_down(key)",
        "key_released": "static key_released(key)",
        "key_up": "static key_up(key)",
        "gamepad_button_pressed": "static gamepad_button_pressed(gamepad, button)",
        "gamepad_button_down": "static gamepad_button_down(gamepad, button)",
        "gamepad_button_released": "static gamepad_button_released(gamepad, button)",
        "mouse_position": "static mouse_position",
        "mouse_button_pressed": "static mouse_button_pressed(button)",
        "mouse_button_down": "static mouse_button_down(button)",
        "mouse_button_released": "static mouse_button_released(button)",
        "mouse_button_up": "static mouse_button_up(button)",
        "load_sound": "static load_sound(filename)",
        "play_sound": "static play_sound(sound, loop)",
        "stop_sound": "static stop_sound(sound)",
        "unload_sound": "static unload_sound(sound)",
        "tts_sound": "static tts_sound(text, phonetic, pitch, speed, throat, mouth, sing)",
        "sfx_sound": "static sfx_sound(params)",
        "sfx_generate": "static sfx_generate(type)",
        "load_tilemap": "static load_tilemap(filename)",
        "unload_tilemap": "static unload_tilemap(tilemap)",
        "tile_update": "static tile_update(tilemap, deltaTime)",
        "tile_map_size": "static tile_map_size(tilemap)",
        "tile_tile_size": "static tile_tile_size(tilemap)",
        "tile_map_prop": "static tile_map_prop(tilemap, name)",
        "tile_map_prop_count": "static tile_map_prop_count(tilemap)",
        "tile_map_prop_at": "static tile_map_prop_at(tilemap, index)",
        "tile_draw": "static tile_draw(tilemap, posX, posY)",
        "tile_draw_tint": "static tile_draw_tint(tilemap, posX, posY, tint)",
        "tile_draw_on_image": "static tile_draw_on_image(dst, tilemap, posX, posY)",
        "tilemap_image": "static tilemap_image(tilemap)",
        "tile_layer_count": "static tile_layer_count(tilemap)",
        "tile_layer_index": "static tile_layer_index(tilemap, name)",
        "tile_layer_name": "static tile_layer_name(tilemap, layer)",
        "tile_layer_type": "static tile_layer_type(tilemap, layer)",
        "tile_layer_size": "static tile_layer_size(tilemap, layer)",
        "tile_layer_visible": "static tile_layer_visible(tilemap, layer)",
        "tile_layer_prop": "static tile_layer_prop(tilemap, layer, name)",
        "tile_layer_prop_count": "static tile_layer_prop_count(tilemap, layer)",
        "tile_layer_prop_at": "static tile_layer_prop_at(tilemap, layer, index)",
        "tile_draw_layer": "static tile_draw_layer(tilemap, layer, posX, posY)",
        "tile_draw_layer_tint": "static tile_draw_layer_tint(tilemap, layer, posX, posY, tint)",
        "tile_draw_layer_on_image": "static tile_draw_layer_on_image(dst, tilemap, layer, posX, posY)",
        "tile_layer_image": "static tile_layer_image(tilemap, layer)",
        "tile_get_tile": "static tile_get_tile(tilemap, layer, column, row)",
        "tile_set_tile": "static tile_set_tile(tilemap, layer, column, row, gid)",
        "tile_draw_tile": "static tile_draw_tile(tilemap, gid, posX, posY)",
        "tile_image": "static tile_image(tilemap, gid)",
        "tile_gid_prop": "static tile_gid_prop(tilemap, gid, name)",
        "tile_gid_prop_count": "static tile_gid_prop_count(tilemap, gid)",
        "tile_gid_prop_at": "static tile_gid_prop_at(tilemap, gid, index)",
        "tile_object_count": "static tile_object_count(tilemap, layer)",
        "tile_object": "static tile_object(tilemap, layer, index)",
        "tile_object_index": "static tile_object_index(tilemap, layer, name)",
        "tile_object_prop": "static tile_object_prop(tilemap, layer, index, name)",
        "tile_object_prop_count": "static tile_object_prop_count(tilemap, layer, index)",
        "tile_object_prop_at": "static tile_object_prop_at(tilemap, layer, index, propIndex)",
        "current_time": "static current_time",
        "delta_time": "static delta_time",
        "random_int": "static random_int(min, max)",
        "random_seed_get": "static random_seed_get",
        "random_seed_set": "static random_seed_set(seed)"
      }
    },
    "cyber": {
      "id": "cyber",
      "binding": "carts/cyber/null0.cy",
      "example": "carts/cyber/simple",
      "title": "Cyber",
      "image": "cyber",
      "kind": "interpreted",
      "file": "main.cy",
      "highlight": "rust",
      "callback": "func update():",
      "toolchain": "cyber, baked into main.wasm",
      "notes": [
        "`use null0`, then `null0.clear(null0.BLUE)`.",
        "The VM is re-entered per callback via `persist_main`, so top-level state persists across frames."
      ],
      "registry": "ghcr.io/notnullgames",
      "imageRef": "ghcr.io/notnullgames/null0-cart-cyber:latest",
      "decls": {
        "color_tint": "fn color_tint(color Color, tint Color) -> Color",
        "color_fade": "fn color_fade(color Color, alpha f32) -> Color",
        "color_brightness": "fn color_brightness(color Color, factor f32) -> Color",
        "color_invert": "fn color_invert(color Color) -> Color",
        "color_alpha_blend": "fn color_alpha_blend(dst Color, src Color) -> Color",
        "color_contrast": "fn color_contrast(color Color, contrast f32) -> Color",
        "color_bilinear_interpolate": "fn color_bilinear_interpolate(color00 Color, color01 Color, color10 Color, color11 Color, coordinateX f32, coordinateY f32) -> Color",
        "new_image": "fn new_image(width i32, height i32, color Color) -> r32",
        "image_copy": "fn image_copy(image r32) -> r32",
        "image_subimage": "fn image_subimage(image r32, x i32, y i32, width i32, height i32) -> r32",
        "clear": "fn clear(color Color)",
        "draw_point": "fn draw_point(x i32, y i32, color Color)",
        "draw_line": "fn draw_line(startPosX i32, startPosY i32, endPosX i32, endPosY i32, color Color)",
        "draw_rectangle": "fn draw_rectangle(posX i32, posY i32, width i32, height i32, color Color)",
        "draw_triangle": "fn draw_triangle(x1 i32, y1 i32, x2 i32, y2 i32, x3 i32, y3 i32, color Color)",
        "draw_ellipse": "fn draw_ellipse(centerX i32, centerY i32, radiusX i32, radiusY i32, color Color)",
        "draw_circle": "fn draw_circle(centerX i32, centerY i32, radius i32, color Color)",
        "draw_polygon": "fn draw_polygon(points []Vector, color Color)",
        "draw_arc": "fn draw_arc(centerX i32, centerY i32, radius f32, startAngle f32, endAngle f32, segments i32, color Color)",
        "draw_rectangle_rounded": "fn draw_rectangle_rounded(x i32, y i32, width i32, height i32, cornerRadius i32, color Color)",
        "draw_image": "fn draw_image(src r32, posX i32, posY i32)",
        "draw_image_tint": "fn draw_image_tint(src r32, posX i32, posY i32, tint Color)",
        "draw_image_rotated": "fn draw_image_rotated(src r32, posX i32, posY i32, degrees f32, offsetX f32, offsetY f32, filter i32)",
        "draw_image_flipped": "fn draw_image_flipped(src r32, posX i32, posY i32, flipHorizontal bool, flipVertical bool, flipDiagonal bool)",
        "draw_image_scaled": "fn draw_image_scaled(src r32, posX i32, posY i32, scaleX f32, scaleY f32, offsetX f32, offsetY f32, filter i32)",
        "draw_text": "fn draw_text(font r32, text str, posX i32, posY i32, color Color)",
        "save_image": "fn save_image(image r32, filename str)",
        "load_image": "fn load_image(filename str) -> r32",
        "image_resize": "fn image_resize(image r32, newWidth i32, newHeight i32, filter i32) -> r32",
        "image_scale": "fn image_scale(image r32, scaleX f32, scaleY f32, filter i32) -> r32",
        "image_color_replace": "fn image_color_replace(image r32, color Color, replace Color)",
        "image_color_tint": "fn image_color_tint(image r32, color Color)",
        "image_color_fade": "fn image_color_fade(image r32, alpha f32)",
        "font_copy": "fn font_copy(font r32) -> r32",
        "font_scale": "fn font_scale(font r32, scaleX f32, scaleY f32, filter i32) -> r32",
        "load_font_bmf": "fn load_font_bmf(filename str, characters str) -> r32",
        "load_font_bmf_from_image": "fn load_font_bmf_from_image(image r32, characters str) -> r32",
        "measure_text": "fn measure_text(font r32, text str, textLength i32) -> Dimensions",
        "measure_image": "fn measure_image(image r32) -> Dimensions",
        "load_font_tty": "fn load_font_tty(filename str, glyphWidth i32, glyphHeight i32, characters str) -> r32",
        "load_font_tty_from_image": "fn load_font_tty_from_image(image r32, glyphWidth i32, glyphHeight i32, characters str) -> r32",
        "load_font_ttf": "fn load_font_ttf(filename str, fontSize i32) -> r32",
        "image_color_invert": "fn image_color_invert(image r32)",
        "image_alpha_border": "fn image_alpha_border(image r32, threshold f32) -> Rectangle",
        "image_crop": "fn image_crop(image r32, x i32, y i32, width i32, height i32)",
        "image_alpha_crop": "fn image_alpha_crop(image r32, threshold f32)",
        "image_color_brightness": "fn image_color_brightness(image r32, factor f32)",
        "image_flip": "fn image_flip(image r32, horizontal bool, vertical bool)",
        "image_color_contrast": "fn image_color_contrast(image r32, contrast f32)",
        "image_alpha_mask": "fn image_alpha_mask(image r32, alphaMask r32, posX i32, posY i32)",
        "image_rotate": "fn image_rotate(image r32, degrees f32, filter i32) -> r32",
        "image_gradient": "fn image_gradient(width i32, height i32, topLeft Color, topRight Color, bottomLeft Color, bottomRight Color) -> r32",
        "unload_image": "fn unload_image(image r32)",
        "unload_font": "fn unload_font(font r32)",
        "clear_image": "fn clear_image(destination r32, color Color)",
        "draw_point_on_image": "fn draw_point_on_image(destination r32, x i32, y i32, color Color)",
        "draw_line_on_image": "fn draw_line_on_image(destination r32, startPosX i32, startPosY i32, endPosX i32, endPosY i32, color Color)",
        "draw_rectangle_on_image": "fn draw_rectangle_on_image(destination r32, posX i32, posY i32, width i32, height i32, color Color)",
        "draw_triangle_on_image": "fn draw_triangle_on_image(destination r32, x1 i32, y1 i32, x2 i32, y2 i32, x3 i32, y3 i32, color Color)",
        "draw_ellipse_on_image": "fn draw_ellipse_on_image(destination r32, centerX i32, centerY i32, radiusX i32, radiusY i32, color Color)",
        "draw_circle_on_image": "fn draw_circle_on_image(destination r32, centerX i32, centerY i32, radius i32, color Color)",
        "draw_polygon_on_image": "fn draw_polygon_on_image(destination r32, points []Vector, color Color)",
        "draw_rectangle_rounded_on_image": "fn draw_rectangle_rounded_on_image(destination r32, x i32, y i32, width i32, height i32, cornerRadius i32, color Color)",
        "draw_image_on_image": "fn draw_image_on_image(destination r32, src r32, posX i32, posY i32)",
        "draw_image_tint_on_image": "fn draw_image_tint_on_image(destination r32, src r32, posX i32, posY i32, tint Color)",
        "draw_image_rotated_on_image": "fn draw_image_rotated_on_image(destination r32, src r32, posX i32, posY i32, degrees f32, offsetX f32, offsetY f32, filter i32)",
        "draw_image_flipped_on_image": "fn draw_image_flipped_on_image(destination r32, src r32, posX i32, posY i32, flipHorizontal bool, flipVertical bool, flipDiagonal bool)",
        "draw_image_scaled_on_image": "fn draw_image_scaled_on_image(destination r32, src r32, posX i32, posY i32, scaleX f32, scaleY f32, offsetX f32, offsetY f32, filter i32)",
        "draw_text_on_image": "fn draw_text_on_image(destination r32, font r32, text str, posX i32, posY i32, color Color)",
        "draw_rectangle_outline": "fn draw_rectangle_outline(posX i32, posY i32, width i32, height i32, thickness i32, color Color)",
        "draw_triangle_outline": "fn draw_triangle_outline(x1 i32, y1 i32, x2 i32, y2 i32, x3 i32, y3 i32, thickness i32, color Color)",
        "draw_ellipse_outline": "fn draw_ellipse_outline(centerX i32, centerY i32, radiusX i32, radiusY i32, thickness i32, color Color)",
        "draw_circle_outline": "fn draw_circle_outline(centerX i32, centerY i32, radius i32, thickness i32, color Color)",
        "draw_polygon_outline": "fn draw_polygon_outline(points []Vector, thickness i32, color Color)",
        "draw_arc_outline": "fn draw_arc_outline(centerX i32, centerY i32, radius f32, startAngle f32, endAngle f32, segments i32, thickness i32, color Color)",
        "draw_rectangle_rounded_outline": "fn draw_rectangle_rounded_outline(x i32, y i32, width i32, height i32, cornerRadius i32, thickness i32, color Color)",
        "draw_rectangle_outline_on_image": "fn draw_rectangle_outline_on_image(destination r32, posX i32, posY i32, width i32, height i32, thickness i32, color Color)",
        "draw_triangle_outline_on_image": "fn draw_triangle_outline_on_image(destination r32, x1 i32, y1 i32, x2 i32, y2 i32, x3 i32, y3 i32, thickness i32, color Color)",
        "draw_ellipse_outline_on_image": "fn draw_ellipse_outline_on_image(destination r32, centerX i32, centerY i32, radiusX i32, radiusY i32, thickness i32, color Color)",
        "draw_circle_outline_on_image": "fn draw_circle_outline_on_image(destination r32, centerX i32, centerY i32, radius i32, thickness i32, color Color)",
        "draw_polygon_outline_on_image": "fn draw_polygon_outline_on_image(destination r32, points []Vector, thickness i32, color Color)",
        "draw_rectangle_rounded_outline_on_image": "fn draw_rectangle_rounded_outline_on_image(destination r32, x i32, y i32, width i32, height i32, cornerRadius i32, thickness i32, color Color)",
        "gui_begin_window": "fn gui_begin_window(title str, rect Rectangle) -> bool",
        "gui_end_window": "fn gui_end_window()",
        "gui_button": "fn gui_button(label str) -> bool",
        "gui_label": "fn gui_label(text str)",
        "gui_text": "fn gui_text(text str)",
        "gui_checkbox": "fn gui_checkbox(label str, state bool) -> bool",
        "gui_slider": "fn gui_slider(value f32, low f32, high f32) -> f32",
        "gui_layout_row": "fn gui_layout_row(widths []i32, height i32)",
        "gui_end": "fn gui_end()",
        "gui_draw": "fn gui_draw(dst r32)",
        "key_pressed": "fn key_pressed(key i32) -> bool",
        "key_down": "fn key_down(key i32) -> bool",
        "key_released": "fn key_released(key i32) -> bool",
        "key_up": "fn key_up(key i32) -> bool",
        "gamepad_button_pressed": "fn gamepad_button_pressed(gamepad i32, button i32) -> bool",
        "gamepad_button_down": "fn gamepad_button_down(gamepad i32, button i32) -> bool",
        "gamepad_button_released": "fn gamepad_button_released(gamepad i32, button i32) -> bool",
        "mouse_position": "fn mouse_position() -> Vector",
        "mouse_button_pressed": "fn mouse_button_pressed(button i32) -> bool",
        "mouse_button_down": "fn mouse_button_down(button i32) -> bool",
        "mouse_button_released": "fn mouse_button_released(button i32) -> bool",
        "mouse_button_up": "fn mouse_button_up(button i32) -> bool",
        "load_sound": "fn load_sound(filename str) -> r32",
        "play_sound": "fn play_sound(sound r32, loop bool)",
        "stop_sound": "fn stop_sound(sound r32)",
        "unload_sound": "fn unload_sound(sound r32)",
        "tts_sound": "fn tts_sound(text str, phonetic bool, pitch i32, speed i32, throat i32, mouth i32, sing bool) -> r32",
        "sfx_sound": "fn sfx_sound(params SfxParams) -> r32",
        "sfx_generate": "fn sfx_generate(type_ i32) -> SfxParams",
        "load_tilemap": "fn load_tilemap(filename str) -> r32",
        "unload_tilemap": "fn unload_tilemap(tilemap r32)",
        "tile_update": "fn tile_update(tilemap r32, deltaTime f32)",
        "tile_map_size": "fn tile_map_size(tilemap r32) -> Dimensions",
        "tile_tile_size": "fn tile_tile_size(tilemap r32) -> Dimensions",
        "tile_map_prop": "fn tile_map_prop(tilemap r32, name str) -> TilemapProp",
        "tile_map_prop_count": "fn tile_map_prop_count(tilemap r32) -> i32",
        "tile_map_prop_at": "fn tile_map_prop_at(tilemap r32, index i32) -> TilemapProp",
        "tile_draw": "fn tile_draw(tilemap r32, posX i32, posY i32)",
        "tile_draw_tint": "fn tile_draw_tint(tilemap r32, posX i32, posY i32, tint Color)",
        "tile_draw_on_image": "fn tile_draw_on_image(dst r32, tilemap r32, posX i32, posY i32)",
        "tilemap_image": "fn tilemap_image(tilemap r32) -> r32",
        "tile_layer_count": "fn tile_layer_count(tilemap r32) -> i32",
        "tile_layer_index": "fn tile_layer_index(tilemap r32, name str) -> i32",
        "tile_layer_name": "fn tile_layer_name(tilemap r32, layer i32) -> str",
        "tile_layer_type": "fn tile_layer_type(tilemap r32, layer i32) -> i32",
        "tile_layer_size": "fn tile_layer_size(tilemap r32, layer i32) -> Dimensions",
        "tile_layer_visible": "fn tile_layer_visible(tilemap r32, layer i32) -> bool",
        "tile_layer_prop": "fn tile_layer_prop(tilemap r32, layer i32, name str) -> TilemapProp",
        "tile_layer_prop_count": "fn tile_layer_prop_count(tilemap r32, layer i32) -> i32",
        "tile_layer_prop_at": "fn tile_layer_prop_at(tilemap r32, layer i32, index i32) -> TilemapProp",
        "tile_draw_layer": "fn tile_draw_layer(tilemap r32, layer i32, posX i32, posY i32)",
        "tile_draw_layer_tint": "fn tile_draw_layer_tint(tilemap r32, layer i32, posX i32, posY i32, tint Color)",
        "tile_draw_layer_on_image": "fn tile_draw_layer_on_image(dst r32, tilemap r32, layer i32, posX i32, posY i32)",
        "tile_layer_image": "fn tile_layer_image(tilemap r32, layer i32) -> r32",
        "tile_get_tile": "fn tile_get_tile(tilemap r32, layer i32, column i32, row i32) -> i32",
        "tile_set_tile": "fn tile_set_tile(tilemap r32, layer i32, column i32, row i32, gid i32)",
        "tile_draw_tile": "fn tile_draw_tile(tilemap r32, gid i32, posX i32, posY i32)",
        "tile_image": "fn tile_image(tilemap r32, gid i32) -> r32",
        "tile_gid_prop": "fn tile_gid_prop(tilemap r32, gid i32, name str) -> TilemapProp",
        "tile_gid_prop_count": "fn tile_gid_prop_count(tilemap r32, gid i32) -> i32",
        "tile_gid_prop_at": "fn tile_gid_prop_at(tilemap r32, gid i32, index i32) -> TilemapProp",
        "tile_object_count": "fn tile_object_count(tilemap r32, layer i32) -> i32",
        "tile_object": "fn tile_object(tilemap r32, layer i32, index i32) -> TilemapObject",
        "tile_object_index": "fn tile_object_index(tilemap r32, layer i32, name str) -> i32",
        "tile_object_prop": "fn tile_object_prop(tilemap r32, layer i32, index i32, name str) -> TilemapProp",
        "tile_object_prop_count": "fn tile_object_prop_count(tilemap r32, layer i32, index i32) -> i32",
        "tile_object_prop_at": "fn tile_object_prop_at(tilemap r32, layer i32, index i32, propIndex i32) -> TilemapProp",
        "current_time": "fn current_time() -> r64",
        "delta_time": "fn delta_time() -> f32",
        "random_int": "fn random_int(min i32, max i32) -> i32",
        "random_seed_get": "fn random_seed_get() -> r64",
        "random_seed_set": "fn random_seed_set(seed r64)"
      }
    }
  }
}
