gruggers 0.9.2

rust implementation of the grug language
Documentation
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "entities": {
            "type": "object",
            "additionalProperties": {
                "type": "object",
                "required": [
                    "description"
                ],
                "additionalProperties": false,
                "properties": {
                    "description": {
                        "type": "string"
                    },
                    "export_functions": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "name",
                                "description"
                            ],
                            "additionalProperties": false,
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "description": {
                                    "type": "string"
                                },
                                "parameters": {
                                    "$ref": "#/definitions/parametersArray"
                                }
                            }
                        }
                    }
                }
            }
        },
        "classes": {
            "type": "object",
            "additionalProperties": {
                "type": "object",
                "required": [
                    "description"
                ],
                "additionalProperties": false,
                "properties": {
                    "description": {
                        "type": "string"
                    },
					"used_generics": {
						"type": "array",
						"items": {
							"type": "string"
						}
					},
                    "methods": {
                        "type": "object",
						"additionalProperties": {
							"type": "object",
							"required": [
								"description"
							],
							"additionalProperties": false,
							"properties": {
								"name": {
									"type": "string"
								},
								"used_generics": {
									"type": "array",
									"items": {
										"type": "string"
									}
								},
								"description": {
									"type": "string"
								},
								"parameters": {
									"$ref": "#/definitions/parametersArray"
								},
								"return_type": {
									"$ref": "#/definitions/type"
								}
							}
						}
                    }
                }
            }
        },
        "host_functions": {
            "type": "object",
            "additionalProperties": {
                "type": "object",
                "required": [
                    "description"
                ],
                "additionalProperties": false,
                "properties": {
                    "description": {
                        "type": "string"
                    },
					"used_generics": {
						"type": "array",
						"items": {
							"type": "string"
						}
					},
                    "return_type": {
                        "$ref": "#/definitions/type"
                    },
                    "parameters": {
                        "$ref": "#/definitions/parametersArray"
                    }
                }
            }
        }
    },
    "definitions": {
        "parametersArray": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [
                    "name",
                    "type"
                ],
                "additionalProperties": false,
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "type": {
                        "$ref": "#/definitions/type"
                    }
                }
            }
        },
        "type": {
            "type": "object",
			"required": [
				"name"
			],
			"additionalProperties": false,
			"properties": {
				"name": {
					"type": "string"
				},
				"generics": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/type"
					}
				},
				"resource_extension": {
					"type": "string"
				},
				"entity_type": {
					"type": "string"
				}
            }
        }
    }
}