--- #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 extensionreferencefield: type: string extensions: type: array items: $ref: "#/definitions/extension" documentation: type: object properties: summary: type: string descriptions: type: array items: type: object properties: field: type: string desc: type: string required: - field - desc required: - summary - descriptions 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 extension: type: object properties: extension: type: object properties: name: type: string referencedfrom: type: string referenceid: type: integer before: type: string after: type: string fields: type: array items: $ref: "#/definitions/field" oneOf: - required: - before - required: - after required: - name - referenceid