{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.airtable.com/field.json",
  "title": "Airtable Field",
  "description": "An Airtable field represents a column in a table, defining the data type, validation rules, and display configuration for values stored in that column.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique identifier for the field. Field IDs always start with the 'fld' prefix.",
      "pattern": "^fld[a-zA-Z0-9]+$",
      "examples": ["fldABC123def456"]
    },
    "name": {
      "type": "string",
      "description": "The display name of the field."
    },
    "type": {
      "type": "string",
      "description": "The data type of the field, which determines what values can be stored and how they are displayed.",
      "enum": [
        "singleLineText",
        "email",
        "url",
        "multilineText",
        "number",
        "percent",
        "currency",
        "singleSelect",
        "multipleSelects",
        "singleCollaborator",
        "multipleCollaborators",
        "multipleRecordLinks",
        "date",
        "dateTime",
        "phoneNumber",
        "multipleAttachments",
        "checkbox",
        "formula",
        "createdTime",
        "rollup",
        "count",
        "lookup",
        "multipleLookupValues",
        "autoNumber",
        "barcode",
        "rating",
        "richText",
        "duration",
        "lastModifiedTime",
        "button",
        "createdBy",
        "lastModifiedBy",
        "externalSyncSource",
        "aiText"
      ]
    },
    "description": {
      "type": ["string", "null"],
      "description": "An optional description of the field."
    },
    "options": {
      "type": "object",
      "description": "Configuration options specific to the field type. For example, singleSelect fields have a choices array, number fields have a precision setting, and linked record fields specify the linked table.",
      "additionalProperties": true
    }
  },
  "required": ["id", "name", "type"],
  "additionalProperties": false
}
