{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "label": {
            "type": "string",
            "description": "The field label displayed in the edit screen",
            "minLength": 1
        },
        "type": {
            "type": "string",
            "enum": [
                "relationship"
            ],
            "description": "Field type identifier. Must be \"relationship\" for this field type."
        },
        "name": {
            "type": "string",
            "description": "The field name used to save/load data. Auto-generated from label if not provided.",
            "pattern": "^[a-z_][a-z0-9_]*$"
        },
        "key": {
            "type": "string",
            "description": "Unique field key. Auto-generated if not provided.",
            "pattern": "^field_[a-z0-9]+$"
        },
        "instructions": {
            "type": "string",
            "description": "Instructions displayed to editors below the field label"
        },
        "required": {
            "type": "boolean",
            "description": "Whether this field is required",
            "default": false
        },
        "conditional_logic": {
            "type": [
                "boolean",
                "array"
            ],
            "description": "Conditional logic rules. Set to false to disable, or provide rules array.",
            "default": false
        },
        "wrapper": {
            "type": "object",
            "description": "HTML wrapper attributes",
            "properties": {
                "width": {
                    "type": "string",
                    "description": "Width percentage (e.g., \"50\")"
                },
                "class": {
                    "type": "string",
                    "description": "Custom CSS classes"
                },
                "id": {
                    "type": "string",
                    "description": "Custom HTML ID"
                }
            }
        },
        "default_value": {
            "type": [
                "string",
                "number",
                "boolean",
                "null"
            ],
            "description": "Default value when creating new content"
        },
        "placeholder": {
            "type": "string",
            "description": "Placeholder text shown in empty fields"
        },
        "prepend": {
            "type": "string",
            "description": "Text to prepend before the input"
        },
        "append": {
            "type": "string",
            "description": "Text to append after the input"
        },
        "maxlength": {
            "type": "integer",
            "description": "Maximum character length (if applicable)",
            "minimum": 1
        },
        "allow_in_bindings": {
            "type": "boolean",
            "description": "Whether this field can be used in block bindings",
            "default": false
        },
        "post_type": {
            "type": "array",
            "description": "Array of post types to query (e.g., [\"post\", \"page\"])",
            "items": {
                "type": "string"
            },
            "default": []
        },
        "taxonomy": {
            "type": "array",
            "description": "Array of taxonomy terms to filter by (e.g., [\"category:news\", \"post_tag:featured\"])",
            "items": {
                "type": "string"
            },
            "default": []
        },
        "min": {
            "type": "integer",
            "description": "Minimum number of items required (0 for no limit)",
            "default": 0,
            "minimum": 0
        },
        "max": {
            "type": "integer",
            "description": "Maximum number of items allowed (0 for no limit)",
            "default": 0,
            "minimum": 0
        },
        "filters": {
            "type": "array",
            "description": "Array of filters to display (search, post_type, taxonomy)",
            "items": {
                "type": "string",
                "enum": [
                    "search",
                    "post_type",
                    "taxonomy"
                ]
            },
            "default": [
                "search",
                "post_type",
                "taxonomy"
            ]
        },
        "elements": {
            "type": "array",
            "description": "Array of elements to display for each post (e.g., [\"featured_image\"])",
            "items": {
                "type": "string"
            },
            "default": []
        },
        "return_format": {
            "type": "string",
            "description": "Format of returned value",
            "enum": [
                "object",
                "id"
            ],
            "default": "object"
        },
        "bidirectional_target": {
            "type": "array",
            "description": "Array of field keys for bidirectional relationships",
            "items": {
                "type": "string"
            },
            "default": []
        }
    },
    "required": [
        "label",
        "type"
    ]
}