Annotation Interface ExcludeFromAi


@Documented @Retention(RUNTIME) @Target({TYPE,FIELD}) public @interface ExcludeFromAi
Marks an entity or attribute as off-limits to the AI: its data must never reach the model, and a generated query may not read it. On a type the whole entity is excluded; on a field only that attribute is, and the exclusion is inherited by entity subclasses.

Unlike the jmix.aitools.dataload.* include/exclude properties, this is a code-level boundary that cannot be overridden at deployment time — use it for data whose exposure decision must live in code, such as PII. Prefer it over @Secret (which hides an attribute everywhere in the framework) and @SystemLevel (an overridable, discovery-only flag) when the intent is precisely "usable in the application, closed to the AI".