What problem does it solve? Adding or debugging validation on Liferay Dynamic Data Mapping (DDM) fields is confusing because there are two distinct mechanisms — declarative expression validation and custom OSGi validators — and it is unclear which one is server-side enforced, how they bind to fields, or whether Client Extensions can replace them. ## Core Features & Use Cases - Declarative expression validation: Configure customProperties.validation JSON on a field using DDM Expression Language functions like isEmailAddress(), matches(), or cross-field expressions, all enforced server-side by DDMFormValuesValidatorImpl. - Custom DDMValidation OSGi components: Create new named, reusable validators that appear in the Validation dropdown instance-wide, bound by data type with ranking support. - Boundary analysis: Confirms Client Extensions cannot hook DDM backend extension points, explains capture-phase submit interception for client-side-only blocking, and documents why dataRules show/hide logic is unavailable for Document Types. - Use Case: A developer needs email validation on a Document Type field that cannot be bypassed via REST API calls — the skill provides the verified JSON payload and confirms the backend enforcement path from portal source. ## Quick Start Add a server-side enforced email validation rule to the dt_owner_email field on my Liferay Document Type.