{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-cli/schemas/object.schema.json", "title": "Twenty Object Manifest", "description": "Schema for Twenty AI object configuration files", "type": "object", "required": [ "standardId", "universalIdentifier", "nameSingular", "namePlural", "labelSingular", "labelPlural" ], "properties": { "$schema": { "type": "string", "description": "JSON Schema reference for validation and IDE support" }, "universalIdentifier": { "type": "string", "description": "Unique identifier (UUID format recommended)", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" }, "standardId": { "const": { "$data": "1/universalIdentifier" }, "description": "Should be the same as universalIdentifier" }, "nameSingular": { "type": "string", "description": "Name singular for the object", "pattern": "^[a-zA-Z][a-zA-Z0-9]*$", "minLength": 1, "maxLength": 100 }, "namePlural": { "type": "string", "description": "Name plural for the object", "pattern": "^[a-zA-Z][a-zA-Z0-9]*$", "minLength": 1, "maxLength": 100 }, "labelSingular": { "type": "string", "description": "Human-readable display name singular for the object", "minLength": 1, "maxLength": 200 }, "labelPlural": { "type": "string", "description": "Human-readable display name singular for the object", "minLength": 1, "maxLength": 200 }, "description": { "type": "string", "description": "Brief description of the object", "maxLength": 500 }, "icon": { "type": "string", "description": "Icon for the object (emoji or icon name)", "maxLength": 50 } }, "additionalProperties": false, "examples": [ { "standardId": "550e8400-e29b-41d4-a716-446655440001", "nameSingular": "object", "namePlural": "objects", "labelSingular": "Object", "labelPlural": "Objects", "description": "Object description", "icon": "🎧" } ] }