type: map required: true mapping: "name": type: str required: true length: { max: 128 } "url": type: str required: true length: { max: 256 } "version": type: str length: { max: 10 } "contact": type: str length: { max: 80 } pattern: /@/ "public": type: str enum: ["yes", "no", "true", "false"] "syncable": type: str enum: ["yes", "no", "true", "false"] "dataVersion": type: str length: { max: 10 } "guid": type: str length: { max: 256 } "description": type: "str" required: true length: { max: 65536 } "basic_description": type: "str" required: true "backgroundImageURL": type: str length: { max: 256 } "navbarImageURL": type: str length: { max: 256 } "hashtag": &hashtag type: str length: { max: 40 } "location": &location type: map mapping: "address1": type: str length: { max: 80 } "address2": type: str length: { max: 80 } "city": type: str length: { max: 80 } "region": type: str length: { max: 40 } "country": type: str length: { max: 40 } "postalCode": type: str length: { max: 20 } "url": type: str length: { max: 256 } "venues": type: seq required: true sequence: - type: map mapping: "venue": type: str required: true length: { max: 256 } "description": type: str required: true length: { max: 65536 } "location": *location "phoneNumber": type: str length: { max: 20 } "backgroundImageURL": type: str length: { max: 256 } "sessions": type: seq sequence: - type: map mapping: "title": type: str required: true length: { max: 128 } "startTime": type: str required: true pattern: /(^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$|^$)/ "endTime": type: str pattern: /(^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$|^$)/ "category": type: str length: { max: 80 } "speaker": type: str length: { max: 80 } "description": type: str required: true length: { max: 65536 } "hashtag": *hashtag "audios": type: seq sequence: - type: str length: { max: 256 } "images": type: seq sequence: - type: str length: { max: 256 } "videos": type: seq sequence: - type: str length: { max: 256 }