{
    "SyncObjectChild": {
        "properties": {
            "parent": {
                "type": "string"
            }
        },
        "required": [
            "parent"
        ],
        "type": "object"
    },
    "SyncObjectChildren": {
        "properties": {
            "childrenUrls": {
                "items": {
                    "type": "string"
                },
                "type": "array"
            },
            "listener": {
                "type": "string"
            },
            "observerPermissions": {
                "enum": [
                    "write",
                    "write_read",
                    "read"
                ]
            },
            "parent": {
                "type": "string"
            },
            "type": {
                "$ref": "#/SyncObjectChild"
            }
        },
        "required": [
            "parent",
            "listener",
            "type"
        ],
        "stereotype": "children",
        "type": "object"
    },
    "SyncObjectParent": {
        "properties": {
            "childUrls": {
                "items": {
                    "type": "string"
                },
                "type": "array"
            },
            "children": {
                "items": {
                    "type": "string"
                },
                "type": "array"
            }
        },
        "type": "object"
    },
    "_comment": "This Spec is for Phase 1!! Most updated version is at https://github.com/reTHINK-project/specs/tree/master/schemas",
    "anyOf": [
        {
            "$ref": "#/SyncObjectParent"
        },
        {
            "$ref": "#/SyncObjectChild"
        }
    ],
    "properties": {
        "description": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "reporter": {
            "type": "string"
        },
        "schema": {
            "type": "string"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "url": {
            "type": "string"
        }
    },
    "required": [
        "url",
        "reporter",
        "schema",
        "name"
    ],
    "type": "object"
}