Files
coffeechat/schema.json
Frédéric Harper d2a86d224c limit topics of discussion length to 35 characters
Trying to not have horizontal scrolling bars in the table
2024-05-01 12:44:08 -04:00

107 lines
3.5 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "coffeechat.schema.json",
"title": "People",
"description": "List of awesome people doing coffee chat",
"type": "object",
"properties": {
"people": {
"type": "array",
"items": {
"$ref": "#/$defs/person"
}
}
},
"$defs": {
"person": {
"type": "object",
"description": "Information about one person",
"properties": {
"name": {
"description": "Full name",
"type": "string"
},
"title": {
"description": "Professional title",
"type": "string"
},
"company": {
"description": "Employer's company name",
"type": "string"
},
"city": {
"description": "City where you live",
"type": "string"
},
"country": {
"description": "Country where you live",
"type": "string"
},
"languages": {
"description": "Languages spoken well enough for a coffee chat",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
},
"website": {
"description": "Website URL",
"$ref": "#/definitions/validURL"
},
"linkedin": {
"description": "LinkedIn profile URL",
"$ref": "#/definitions/validURL"
},
"twitter": {
"description": "Twitter account URL",
"$ref": "#/definitions/validURL"
},
"mastodon": {
"description": "Mastodon account URL",
"$ref": "#/definitions/validURL"
},
"scheduling": {
"description": "Scheduling platform URL or mailto link",
"$ref": "#/definitions/validScheduling"
},
"online-only": {
"description": "Whether you are open to in-person Coffee Chat (default: false)",
"type": "boolean"
},
"topics": {
"description": "List of every topics you are de factor comfortable to discuss or give tips about",
"type": "array",
"items": {
"type": "string",
"maxLength": 35
},
"minItems": 1,
"uniqueItems": true
}
},
"required": [
"name",
"title",
"company",
"languages",
"linkedin",
"scheduling",
"topics"
],
"additionalProperties": false
}
},
"definitions": {
"validURL": {
"type": "string",
"pattern": "(^https?://)|(^$)"
},
"validScheduling": {
"type": "string",
"pattern": "(^https?://)|(^mailto:)"
}
}
}