{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://liednest.de/schema/songbook-v1.json",
	"title": "Liednest-Liederbuch",
	"description": "Eigenes Liederbuch für Liednest. Die Datei wird per URL in der App (Symbol „Liederbücher“) abonniert. Beispiel: https://liednest.de/beispiel-liederbuch.json",
	"type": "object",
	"required": ["name", "songs"],
	"properties": {
		"$schema": { "type": "string" },
		"name": {
			"type": "string",
			"description": "Name des Liederbuchs, erscheint in der App bei jedem Lied."
		},
		"description": { "type": "string", "description": "Kurze Beschreibung." },
		"version": { "type": "string", "description": "Frei wählbare Versionsangabe, z. B. „1.0“." },
		"updatedAt": {
			"type": "string",
			"format": "date-time",
			"description": "Zeitpunkt der letzten Änderung (ISO 8601)."
		},
		"songs": {
			"type": "array",
			"items": { "$ref": "#/$defs/song" }
		}
	},
	"$defs": {
		"song": {
			"type": "object",
			"required": ["title", "stanzas"],
			"properties": {
				"id": {
					"type": "string",
					"description": "Eindeutige Kennung innerhalb des Liederbuchs, z. B. „alle-meine-entchen“. Fehlt sie, wird sie aus dem Titel gebildet."
				},
				"title": { "type": "string" },
				"composer": { "type": "string", "description": "Text und Melodie, z. B. „Volksweise“." },
				"copyright": {
					"type": "string",
					"description": "Quelle oder Rechtehinweis, wird beim Lied angezeigt."
				},
				"categories": {
					"type": "array",
					"items": { "type": "string" },
					"description": "Kategorien für die Filter-Chips. Fehlen sie, gilt der Name des Liederbuchs."
				},
				"chords": {
					"type": "array",
					"items": { "type": "string" },
					"description": "Gitarrengriffe des Liedes, z. B. [\"C\", \"G\", \"Am\"]. Fehlen sie, werden sie aus den [Akkorden] im Text gesammelt."
				},
				"tempoQpm": {
					"type": "integer",
					"minimum": 1,
					"default": 120,
					"description": "Tempo der Wiedergabe in Viertelnoten pro Minute."
				},
				"abc": {
					"type": "string",
					"description": "Melodie in ABC-Notation (https://abcnotation.com). Leer lassen für Lieder nur mit Text und Griffen. Zeilenumbrüche als \\n."
				},
				"stanzas": {
					"type": "array",
					"description": "Strophen. Jede Strophe ist eine Liste von Zeilen (oder ein Text mit \\n). Akkorde stehen in eckigen Klammern vor der Silbe: „[C]Alle meine [G]Entchen“.",
					"items": {
						"oneOf": [{ "type": "array", "items": { "type": "string" } }, { "type": "string" }]
					}
				}
			}
		}
	}
}
