--- #title: protocol-schema type: object properties: protocol: type: object properties: name: type: string longname: type: string fields: type: array items: $ref: "#/definitions/field" osilayer: type: integer minimum: 1 maximum: 7 required: - name - fields - osilayer definitions: field: type: object properties: length: type: integer reflength: type: string data: type: boolean field: type: string desc: type: string bitfield: type: boolean optional: type: boolean repeatable: type: boolean nextlayer: type: boolean reference: type: string subfields: type: array items: $ref: "#/definitions/field" oneOf: - required: - length - required: - reflength - required: - data required: - field