[ { "domain": "Test", "types": [ { "id": "TypeNeedingCast", "type": "object", "description": "A dummy type that requires runtime casts, and forces non-primitive referenced types to also emit runtime cast helpers.", "properties": [ { "name": "string", "type": "string", "description": "String member." }, { "name": "number", "type": "integer", "description": "Number member." }, { "name": "animals", "$ref": "CastedAnimals", "description": "Enum member." }, { "name": "id", "$ref": "CastedObjectId", "description": "Aliased member." }, { "name": "tree", "$ref": "RecursiveObject1", "description": "Recursive object member." } ] }, { "id": "CastedObjectId", "type": "integer" }, { "id": "UncastedObjectId", "type": "integer" }, { "id": "UncastedAnimals", "type": "string", "enum": ["Pigs", "Cows", "Cats", "Hens"] }, { "id": "CastedAnimals", "type": "string", "enum": ["Ducks", "Hens", "Crows", "Flamingos"] }, { "id": "RecursiveObject1", "type": "object", "properties": [ { "name": "obj", "$ref": "RecursiveObject2", "optional": true } ] }, { "id": "RecursiveObject2", "type": "object", "properties": [ { "name": "obj", "$ref": "RecursiveObject1", "optional": true } ] } ] } ]