complex.json 3.3 KB
{
    "package": "Game.Cars",
    "messages": [
        {
            "name": "Car",
            "fields": [
                {
                    "rule": "required",
                    "type": "string",
                    "name": "model",
                    "id": 1
                },
                {
                    "rule": "required",
                    "type": "Vendor",
                    "name": "vendor",
                    "id": 2
                },
                {
                    "rule": "optional",
                    "type": "Speed",
                    "name": "speed",
                    "id": 3,
                    "options": {
                        "default": "FAST"
                    }
                }
            ],
            "messages": [
                {
                    "name": "Vendor",
                    "fields": [
                        {
                            "rule": "required",
                            "type": "string",
                            "name": "name",
                            "id": 1
                        },
                        {
                            "rule": "optional",
                            "type": "Address",
                            "name": "address",
                            "id": 2
                        },
                        {
                            "rule": "repeated",
                            "type": "string",
                            "name": "models",
                            "id": 3
                        }
                    ],
                    "messages": [
                        {
                            "name": "Address",
                            "fields": [
                                {
                                    "rule": "required",
                                    "type": "string",
                                    "name": "country",
                                    "id": 1
                                }
                            ]
                        }
                    ]
                },
                {
                    "name": "Holder",
                    "fields": [
                        {
                            "rule": "optional",
                            "type": "string",
                            "name": "first_name",
                            "id": 1
                        },
                        {
                            "rule": "required",
                            "type": "string",
                            "name": "last_name",
                            "id": 2
                        },
                        {
                            "rule": "optional",
                            "type": "Vendor.Address",
                            "name": "address",
                            "id": 3
                        }
                    ]
                }
            ],
            "enums": [
                {
                    "name": "Speed",
                    "values": [
                        {
                            "name": "FAST",
                            "id": 1
                        },
                        {
                            "name": "SUPERFAST",
                            "id": 2
                        }
                    ]
                }
            ]
        }
    ]
}