{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://b2base.eu/schemas/1.0.0-draft.1/common/metadata.editor.schema.json",
  "title": "Datensatz-Metadaten – Feldübernahme",
  "$comment": "Nur zur Feldübernahme im B2Base-Designer. Struktur-, Listen- und bedingte Regeln sind reduziert; vollständige Prüfung mit https://b2base.eu/schemas/1.0.0-draft.1/common/metadata.schema.json. Formate außer date/email werden derzeit nicht durch die Runtime geprüft. Freie Daten-/Erweiterungsobjekte benötigen eigene Feldschemata.",
  "type": "object",
  "description": "Metadaten eines Datensatzes.",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Stabile absolute Kennung des Datensatzes.",
      "format": "uri"
    },
    "schemaId": {
      "type": "string",
      "minLength": 1,
      "description": "Kennung des tatsächlich verwendeten Austauschschemas.",
      "format": "uri"
    },
    "createdAt": {
      "type": "string",
      "minLength": 1,
      "description": "Erstellungszeitpunkt.",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "minLength": 1,
      "description": "Letzte fachliche Änderung.",
      "format": "date-time"
    },
    "language": {
      "$ref": "#/$defs/LanguageTag",
      "description": "Optionale Standardsprache unmarkierter Freitexte."
    },
    "source": {
      "type": "string",
      "minLength": 1,
      "description": "Herkunftssystem oder Quelldatensatz.",
      "format": "uri"
    },
    "version": {
      "type": "string",
      "minLength": 1,
      "description": "Version des Datensatzes, unabhängig von der Schemafassung."
    },
    "extensions": {
      "type": "object",
      "description": "Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern.",
      "properties": {}
    }
  },
  "required": [
    "id",
    "schemaId"
  ],
  "$defs": {
    "LanguageTag": {
      "type": "string",
      "minLength": 1,
      "description": "BCP-47-Sprachtag, etwa de, zh-Hant-TW, sr-Latn oder x-internal. Das Muster prüft nur die Grundform, nicht Registrierung oder alle BCP-47-Regeln.",
      "pattern": "^[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*$"
    }
  },
  "examples": [
    {
      "id": "urn:example:record:42",
      "schemaId": "https://b2base.eu/schemas/1.0.0-draft.1/person/nameandbirthdetails.schema.json",
      "createdAt": "2026-09-08T08:00:00Z",
      "language": "sr-Latn"
    }
  ]
}
