Projection Sets
Projection sets group related projections as reusable templates and provide generic property slots for configurable, repeatable transformation patterns.
Reusable Projection Patterns
Projection sets group related projections that are commonly applied together. Instead of recreating the same property transformations for each new entity area, you define them once and apply the set. A set might include standard audit columns (created_at, updated_at, created_by), a soft-delete pattern (is_deleted, deleted_at), and a versioning pattern (version_number, previous_version_id). When applied to a projection, the set adds these properties with their transformations already configured.
Generic Property Slots
Set properties can define generic slots that resolve per-property when the set is applied. This is not a shared type parameter where every property in the set resolves to the same type. Each property can resolve its generic slot independently. For example, a "history tracking" set might have a previous_value property with a generic slot. When applied to a string field, the slot resolves to varchar. When applied to a numeric field, the same slot resolves to integer. The resolution happens at the point of application, not at the point of set definition.
Projection Unions
Projections can union other projections to import entities by reference. This works similarly to SQL UNION or type library imports. A projection that defines shared reference data entities (countries, currencies, status codes) can be unioned into multiple downstream projections without duplicating those entity definitions. Changes to the source projection flow through to all consumers. This keeps entity definitions consistent across projection boundaries and reduces maintenance when shared structures change.