{
"constraints": {
"Default": {
"description": "A type where a default value can be created with no inputs",
"implementors": []
},
"Hash": {
"description": "A type that can be hashed deterministically",
"implementors": [
{
"type": {
"name": "number"
}
},
{
"type": {
"name": "string"
}
},
{
"type": {
"name": "bool"
}
},
{
"used_generics": [
{
"name": "$T1"
},
{
"name": "$T2"
}
],
"type": {
"name": "Pair",
"generics": [
{
"name": "$T1"
},
{
"name": "$T2"
}
]
}
},
{
"used_generics": [
{
"name": "$T"
}
],
"type": {
"name": "Vec",
"generics": [
{
"name": "$T"
}
]
}
}
]
}
},
"entities": {
"A": {
"description": "foo"
},
"D": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo"
}
]
},
"E": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo"
},
{
"name": "b",
"description": "foo"
}
]
},
"F": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo",
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
}
]
}
]
},
"G": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo",
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
},
{
"name": "y",
"type": {
"name": "number"
}
}
]
}
]
},
"J": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo"
},
{
"name": "b",
"description": "foo"
},
{
"name": "c",
"description": "foo"
}
]
},
"R": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo",
"parameters": [
{
"name": "f",
"type": {
"name": "number"
}
}
]
}
]
},
"S": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo",
"parameters": [
{
"name": "i",
"type": {
"name": "number"
}
},
{
"name": "f",
"type": {
"name": "number"
}
}
]
}
]
},
"T": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo",
"parameters": [
{
"name": "timer",
"type": {
"name": "Timer"
}
}
]
}
]
},
"U": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo",
"parameters": [
{
"name": "id",
"type": {
"name": "id"
}
}
]
}
]
},
"V": {
"description": "foo",
"export_functions": [
{
"name": "a",
"description": "foo",
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
}
]
},
{
"name": "b",
"description": "foo",
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
}
]
}
]
}
},
"classes": {
"VecNumber": {
"description": "A growable list of numbers.",
"methods": {
"push": {
"description": "Pushes a number to the end of the list.",
"parameters": [
{
"name": "value",
"type": {
"name": "number"
}
}
]
},
"pop": {
"description": "Removes the last element from the list and returns it",
"parameters": [ ],
"return_type": {
"name": "number"
}
},
"insert": {
"description": "Inserts a value at an index.",
"parameters": [
{
"name": "index",
"type": {
"name": "number"
}
},
{
"name": "value",
"type": {
"name": "number"
}
}
]
}
}
},
"Utils": {
"description": "Asserts.",
"methods": {
"assert_state_is_not_null": {
"description": "Asserts state is not null."
},
"cause_game_fn_error": {
"description": "Causes a game fn error."
},
"call_on_b_fn": {
"description": "Calls its own on_b function."
},
"cause_game_fn_error_generic": {
"description": "accepts a generic value and unconditionally causes a runtime error",
"used_generics": [
{
"name": "$T"
}
],
"parameters": [
{
"name": "input",
"type": {
"name": "$T"
}
}
],
"return_type": {
"name": "bool"
}
}
}
},
"Vec": {
"description": "A vector",
"used_generics": [
{
"name": "$T"
}
],
"methods": {
"push": {
"description": "Pushes an item to the end of the list",
"parameters": [
{
"name": "value",
"type": {
"name": "$T"
}
}
]
},
"pop": {
"description": "Removes the last element from the list and returns it",
"parameters": [ ],
"return_type": {
"name": "$T"
}
},
"insert": {
"description": "Inserts an element at index i",
"parameters": [
{
"name": "index",
"type": {
"name": "number"
}
},
{
"name": "value",
"type": {
"name": "$T"
}
}
]
}
}
},
"Pair": {
"description": "A pair of two different values",
"used_generics": [
{
"name": "$T1"
},
{
"name": "$T2"
}
],
"methods": {
"first": {
"description": "Gets the first item from the pair",
"return_type": {
"name": "$T1"
}
},
"second": {
"description": "Gets the second item from the pair",
"return_type": {
"name": "$T2"
}
}
}
},
"Box": {
"description": "A heap allocated version of a type. Allows sharing of primitive types",
"used_generics": [
{
"name": "$T"
}
],
"methods": {
"get": {
"description": "Gets the inner item",
"return_type": {
"name": "$T"
}
},
"set": {
"description": "Sets the value inside the box",
"parameters": [
{
"name": "new_item",
"type": {
"name": "$T"
}
}
]
}
}
},
"Dict": {
"description": "A dictionary",
"used_generics": [
{
"name": "$K",
"constraints": ["Hash"]
},
{
"name": "$V"
}
],
"methods": {
"put": {
"description": "Inserts a key and value into the dictionary",
"parameters": [
{
"name": "key",
"type": {
"name": "$K"
}
},
{
"name": "value",
"type": {
"name": "$V"
}
}
]
}
}
}
},
"host_functions": {
"assert_state_is_not_null": {
"description": "foo"
},
"make_pair": {
"description": "Creates a pair of two values",
"used_generics": [
{
"name": "$T1"
},
{
"name": "$T2"
}
],
"return_type": {
"name": "Pair",
"generics": [
{
"name": "$T1"
},
{
"name": "$T2"
}
]
},
"parameters": [
{
"name": "first",
"type": {
"name": "$T1"
}
},
{
"name": "second",
"type": {
"name": "$T2"
}
}
]
},
"utils": {
"description": "Creates a new Utils",
"return_type": {
"name": "Utils"
}
},
"blocked_alrm": {
"description": "foo"
},
"box_number": {
"description": "foo",
"return_type": {
"name": "BoxedNumber"
},
"parameters": [
{
"name": "n",
"type": {
"name": "number"
}
}
]
},
"call_on_b_fn": {
"description": "foo"
},
"call_on_b_fn_number": {
"description": "calls the entity's on function with a number argument",
"parameters": [
{
"name": "input",
"type": {
"name": "number"
}
}
]
},
"cause_game_fn_error": {
"description": "foo",
"return_type": {
"name": "bool"
}
},
"cause_game_fn_error_generic": {
"description": "accepts a generic value and unconditionally causes a runtime error",
"used_generics": [
{
"name": "$T"
}
],
"parameters": [
{
"name": "input",
"type": {
"name": "$T"
}
}
],
"return_type": {
"name": "bool"
}
},
"cos": {
"description": "foo",
"return_type": {
"name": "number"
},
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
}
]
},
"draw": {
"description": "foo",
"parameters": [
{
"name": "sprite_path",
"type": {
"name": "resource",
"resource_extension": ""
}
}
]
},
"get_false": {
"description": "foo",
"return_type": {
"name": "bool"
}
},
"get_opponent": {
"description": "foo",
"return_type": {
"name": "Opponent"
}
},
"get_os": {
"description": "foo",
"return_type": {
"name": "string"
}
},
"get_position": {
"description": "foo",
"return_type": {
"name": "Position"
},
"parameters": [
{
"name": "id",
"type": {
"name": "D"
}
}
]
},
"has_entity": {
"description": "foo",
"return_type": {
"name": "bool"
},
"parameters": [
{
"name": "name",
"type": {
"name": "entity",
"entity_type": ""
}
}
]
},
"has_resource": {
"description": "foo",
"return_type": {
"name": "bool"
},
"parameters": [
{
"name": "path",
"type": {
"name": "resource",
"resource_extension": ""
}
}
]
},
"has_string": {
"description": "foo",
"return_type": {
"name": "bool"
},
"parameters": [
{
"name": "str",
"type": {
"name": "string"
}
}
]
},
"identity": {
"description": "foo",
"return_type": {
"name": "number"
},
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
}
]
},
"initialize": {
"description": "foo",
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
}
]
},
"initialize_bool": {
"description": "foo",
"parameters": [
{
"name": "b",
"type": {
"name": "bool"
}
}
]
},
"magic": {
"description": "foo",
"return_type": {
"name": "number"
}
},
"max": {
"description": "foo",
"return_type": {
"name": "number"
},
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
},
{
"name": "y",
"type": {
"name": "number"
}
}
]
},
"mega": {
"description": "foo",
"parameters": [
{
"name": "f1",
"type": {
"name": "number"
}
},
{
"name": "i1",
"type": {
"name": "number"
}
},
{
"name": "b1",
"type": {
"name": "bool"
}
},
{
"name": "f2",
"type": {
"name": "number"
}
},
{
"name": "f3",
"type": {
"name": "number"
}
},
{
"name": "f4",
"type": {
"name": "number"
}
},
{
"name": "b2",
"type": {
"name": "bool"
}
},
{
"name": "i2",
"type": {
"name": "number"
}
},
{
"name": "f5",
"type": {
"name": "number"
}
},
{
"name": "f6",
"type": {
"name": "number"
}
},
{
"name": "f7",
"type": {
"name": "number"
}
},
{
"name": "f8",
"type": {
"name": "number"
}
},
{
"name": "id",
"type": {
"name": "D"
}
},
{
"name": "str",
"type": {
"name": "string"
}
}
]
},
"mega_f32": {
"description": "foo",
"parameters": [
{
"name": "f1",
"type": {
"name": "number"
}
},
{
"name": "f2",
"type": {
"name": "number"
}
},
{
"name": "f3",
"type": {
"name": "number"
}
},
{
"name": "f4",
"type": {
"name": "number"
}
},
{
"name": "f5",
"type": {
"name": "number"
}
},
{
"name": "f6",
"type": {
"name": "number"
}
},
{
"name": "f7",
"type": {
"name": "number"
}
},
{
"name": "f8",
"type": {
"name": "number"
}
},
{
"name": "f9",
"type": {
"name": "number"
}
}
]
},
"mega_i32": {
"description": "foo",
"parameters": [
{
"name": "i1",
"type": {
"name": "number"
}
},
{
"name": "i2",
"type": {
"name": "number"
}
},
{
"name": "i3",
"type": {
"name": "number"
}
},
{
"name": "i4",
"type": {
"name": "number"
}
},
{
"name": "i5",
"type": {
"name": "number"
}
},
{
"name": "i6",
"type": {
"name": "number"
}
},
{
"name": "i7",
"type": {
"name": "number"
}
}
]
},
"motherload": {
"description": "foo",
"parameters": [
{
"name": "i1",
"type": {
"name": "number"
}
},
{
"name": "i2",
"type": {
"name": "number"
}
},
{
"name": "i3",
"type": {
"name": "number"
}
},
{
"name": "i4",
"type": {
"name": "number"
}
},
{
"name": "i5",
"type": {
"name": "number"
}
},
{
"name": "i6",
"type": {
"name": "number"
}
},
{
"name": "i7",
"type": {
"name": "number"
}
},
{
"name": "f1",
"type": {
"name": "number"
}
},
{
"name": "f2",
"type": {
"name": "number"
}
},
{
"name": "f3",
"type": {
"name": "number"
}
},
{
"name": "f4",
"type": {
"name": "number"
}
},
{
"name": "f5",
"type": {
"name": "number"
}
},
{
"name": "f6",
"type": {
"name": "number"
}
},
{
"name": "f7",
"type": {
"name": "number"
}
},
{
"name": "f8",
"type": {
"name": "number"
}
},
{
"name": "id",
"type": {
"name": "D"
}
},
{
"name": "f9",
"type": {
"name": "number"
}
}
]
},
"motherload_subless": {
"description": "foo",
"parameters": [
{
"name": "i1",
"type": {
"name": "number"
}
},
{
"name": "i2",
"type": {
"name": "number"
}
},
{
"name": "i3",
"type": {
"name": "number"
}
},
{
"name": "i4",
"type": {
"name": "number"
}
},
{
"name": "i5",
"type": {
"name": "number"
}
},
{
"name": "i6",
"type": {
"name": "number"
}
},
{
"name": "i7",
"type": {
"name": "number"
}
},
{
"name": "f1",
"type": {
"name": "number"
}
},
{
"name": "f2",
"type": {
"name": "number"
}
},
{
"name": "f3",
"type": {
"name": "number"
}
},
{
"name": "f4",
"type": {
"name": "number"
}
},
{
"name": "f5",
"type": {
"name": "number"
}
},
{
"name": "f6",
"type": {
"name": "number"
}
},
{
"name": "f7",
"type": {
"name": "number"
}
},
{
"name": "f8",
"type": {
"name": "number"
}
},
{
"name": "f9",
"type": {
"name": "number"
}
},
{
"name": "id",
"type": {
"name": "D"
}
},
{
"name": "f10",
"type": {
"name": "number"
}
}
]
},
"nothing": {
"description": "foo"
},
"offset_32_bit_f32": {
"description": "foo",
"parameters": [
{
"name": "s1",
"type": {
"name": "string"
}
},
{
"name": "s2",
"type": {
"name": "string"
}
},
{
"name": "s3",
"type": {
"name": "string"
}
},
{
"name": "s4",
"type": {
"name": "string"
}
},
{
"name": "s5",
"type": {
"name": "string"
}
},
{
"name": "s6",
"type": {
"name": "string"
}
},
{
"name": "s7",
"type": {
"name": "string"
}
},
{
"name": "s8",
"type": {
"name": "string"
}
},
{
"name": "s9",
"type": {
"name": "string"
}
},
{
"name": "s10",
"type": {
"name": "string"
}
},
{
"name": "s11",
"type": {
"name": "string"
}
},
{
"name": "s12",
"type": {
"name": "string"
}
},
{
"name": "s13",
"type": {
"name": "string"
}
},
{
"name": "s14",
"type": {
"name": "string"
}
},
{
"name": "s15",
"type": {
"name": "string"
}
},
{
"name": "f1",
"type": {
"name": "number"
}
},
{
"name": "f2",
"type": {
"name": "number"
}
},
{
"name": "f3",
"type": {
"name": "number"
}
},
{
"name": "f4",
"type": {
"name": "number"
}
},
{
"name": "f5",
"type": {
"name": "number"
}
},
{
"name": "f6",
"type": {
"name": "number"
}
},
{
"name": "f7",
"type": {
"name": "number"
}
},
{
"name": "f8",
"type": {
"name": "number"
}
},
{
"name": "g",
"type": {
"name": "number"
}
}
]
},
"offset_32_bit_i32": {
"description": "foo",
"parameters": [
{
"name": "f1",
"type": {
"name": "number"
}
},
{
"name": "f2",
"type": {
"name": "number"
}
},
{
"name": "f3",
"type": {
"name": "number"
}
},
{
"name": "f4",
"type": {
"name": "number"
}
},
{
"name": "f5",
"type": {
"name": "number"
}
},
{
"name": "f6",
"type": {
"name": "number"
}
},
{
"name": "f7",
"type": {
"name": "number"
}
},
{
"name": "f8",
"type": {
"name": "number"
}
},
{
"name": "f9",
"type": {
"name": "number"
}
},
{
"name": "f10",
"type": {
"name": "number"
}
},
{
"name": "f11",
"type": {
"name": "number"
}
},
{
"name": "f12",
"type": {
"name": "number"
}
},
{
"name": "f13",
"type": {
"name": "number"
}
},
{
"name": "f14",
"type": {
"name": "number"
}
},
{
"name": "f15",
"type": {
"name": "number"
}
},
{
"name": "f16",
"type": {
"name": "number"
}
},
{
"name": "f17",
"type": {
"name": "number"
}
},
{
"name": "f18",
"type": {
"name": "number"
}
},
{
"name": "f19",
"type": {
"name": "number"
}
},
{
"name": "f20",
"type": {
"name": "number"
}
},
{
"name": "f21",
"type": {
"name": "number"
}
},
{
"name": "f22",
"type": {
"name": "number"
}
},
{
"name": "f23",
"type": {
"name": "number"
}
},
{
"name": "f24",
"type": {
"name": "number"
}
},
{
"name": "f25",
"type": {
"name": "number"
}
},
{
"name": "f26",
"type": {
"name": "number"
}
},
{
"name": "f27",
"type": {
"name": "number"
}
},
{
"name": "f28",
"type": {
"name": "number"
}
},
{
"name": "f29",
"type": {
"name": "number"
}
},
{
"name": "f30",
"type": {
"name": "number"
}
},
{
"name": "i1",
"type": {
"name": "number"
}
},
{
"name": "i2",
"type": {
"name": "number"
}
},
{
"name": "i3",
"type": {
"name": "number"
}
},
{
"name": "i4",
"type": {
"name": "number"
}
},
{
"name": "i5",
"type": {
"name": "number"
}
},
{
"name": "g",
"type": {
"name": "number"
}
}
]
},
"offset_32_bit_string": {
"description": "foo",
"parameters": [
{
"name": "f1",
"type": {
"name": "number"
}
},
{
"name": "f2",
"type": {
"name": "number"
}
},
{
"name": "f3",
"type": {
"name": "number"
}
},
{
"name": "f4",
"type": {
"name": "number"
}
},
{
"name": "f5",
"type": {
"name": "number"
}
},
{
"name": "f6",
"type": {
"name": "number"
}
},
{
"name": "f7",
"type": {
"name": "number"
}
},
{
"name": "f8",
"type": {
"name": "number"
}
},
{
"name": "f9",
"type": {
"name": "number"
}
},
{
"name": "f10",
"type": {
"name": "number"
}
},
{
"name": "f11",
"type": {
"name": "number"
}
},
{
"name": "f12",
"type": {
"name": "number"
}
},
{
"name": "f13",
"type": {
"name": "number"
}
},
{
"name": "f14",
"type": {
"name": "number"
}
},
{
"name": "f15",
"type": {
"name": "number"
}
},
{
"name": "f16",
"type": {
"name": "number"
}
},
{
"name": "f17",
"type": {
"name": "number"
}
},
{
"name": "f18",
"type": {
"name": "number"
}
},
{
"name": "f19",
"type": {
"name": "number"
}
},
{
"name": "f20",
"type": {
"name": "number"
}
},
{
"name": "f21",
"type": {
"name": "number"
}
},
{
"name": "f22",
"type": {
"name": "number"
}
},
{
"name": "f23",
"type": {
"name": "number"
}
},
{
"name": "f24",
"type": {
"name": "number"
}
},
{
"name": "f25",
"type": {
"name": "number"
}
},
{
"name": "f26",
"type": {
"name": "number"
}
},
{
"name": "f27",
"type": {
"name": "number"
}
},
{
"name": "f28",
"type": {
"name": "number"
}
},
{
"name": "f29",
"type": {
"name": "number"
}
},
{
"name": "f30",
"type": {
"name": "number"
}
},
{
"name": "s1",
"type": {
"name": "string"
}
},
{
"name": "s2",
"type": {
"name": "string"
}
},
{
"name": "s3",
"type": {
"name": "string"
}
},
{
"name": "s4",
"type": {
"name": "string"
}
},
{
"name": "s5",
"type": {
"name": "string"
}
},
{
"name": "g",
"type": {
"name": "number"
}
}
]
},
"print_csv": {
"description": "foo",
"parameters": [
{
"name": "csv_path",
"type": {
"name": "resource",
"resource_extension": ".csv"
}
}
]
},
"retrieve": {
"description": "foo",
"return_type": {
"name": "id"
}
},
"say": {
"description": "foo",
"parameters": [
{
"name": "message",
"type": {
"name": "string"
}
}
]
},
"set_d": {
"description": "foo",
"parameters": [
{
"name": "target",
"type": {
"name": "D"
}
}
]
},
"set_is_happy": {
"description": "foo",
"parameters": [
{
"name": "is_happy",
"type": {
"name": "bool"
}
}
]
},
"set_opponent": {
"description": "foo",
"parameters": [
{
"name": "target",
"type": {
"name": "Opponent"
}
}
]
},
"set_position": {
"description": "foo",
"parameters": [
{
"name": "pos",
"type": {
"name": "Position"
}
}
]
},
"sin": {
"description": "foo",
"return_type": {
"name": "number"
},
"parameters": [
{
"name": "x",
"type": {
"name": "number"
}
}
]
},
"spawn": {
"description": "foo",
"parameters": [
{
"name": "name",
"type": {
"name": "entity",
"entity_type": ""
}
}
]
},
"spawn_d": {
"description": "foo",
"parameters": [
{
"name": "name",
"type": {
"name": "entity",
"entity_type": "D"
}
}
]
},
"store": {
"description": "foo",
"parameters": [
{
"name": "id",
"type": {
"name": "id"
}
}
]
},
"talk": {
"description": "foo",
"parameters": [
{
"name": "message1",
"type": {
"name": "string"
}
},
{
"name": "message2",
"type": {
"name": "string"
}
},
{
"name": "message3",
"type": {
"name": "string"
}
},
{
"name": "message4",
"type": {
"name": "string"
}
}
]
},
"vec_number_new": {
"description": "Creates a new VecNumber",
"parameters": [ ],
"return_type": {
"name": "VecNumber"
}
},
"vec": {
"description": "Creates a new Vec",
"used_generics": [
{
"name": "$T"
}
],
"parameters": [ ],
"return_type": {
"name": "Vec",
"generics": [
{
"name": "$T"
}
]
}
},
"box": {
"description": "Creates a boxed item",
"used_generics": [
{
"name": "$T"
}
],
"parameters": [
{
"name": "item",
"type": {
"name": "$T"
}
}
],
"return_type": {
"name": "Box",
"generics": [
{
"name": "$T"
}
]
}
},
"default": {
"description": "Creates a default new item for the type. Only works for Vec and string",
"used_generics": [
{
"name": "$T",
"constraints": ["Default"]
}
],
"return_type": {
"name": "$T"
}
},
"dict": {
"description": "Creates a new empty dict",
"used_generics": [
{
"name": "$K",
"constraints": ["Hash"]
},
{
"name": "$V"
}
],
"return_type": {
"name": "Dict",
"generics": [
{
"name": "$K"
},
{
"name": "$V"
}
]
}
},
"dict_from_vec": {
"description": "Creates a dict from a list of pairs of items",
"used_generics": [
{
"name": "$K",
"constraints": ["Hash"]
},
{
"name": "$V"
}
],
"return_type": {
"name": "Dict",
"generics": [
{
"name": "$K"
},
{
"name": "$V"
}
]
},
"parameters": [
{
"name": "list",
"type": {
"name": "Vec",
"generics": [
{
"name": "Pair",
"generics": [
{
"name": "$K"
},
{
"name": "$V"
}
]
}
]
}
}
]
}
}
}