TenantPolicy
Which tenant the aggregates of a type are in (replacing 9.x @StaticTenantId): by default the caller's, or the one a cross-scope caller names, unless fixedTenant fixes one for the type, which then holds whoever the caller is. The command admission of the runtime and the query admission (QueryTargets) both decide the tenant through tenantOf, and which tenants a caller reaches through reaches: one rule for the write and the read side.
Functions
The tenant every aggregate of type is in, or null when it is the caller's.
The tenant caller addresses an aggregate of type in, with the cross-scope target it may name (whether the caller may name one is checked apart): the type's fixed tenant, else the target's, else the caller's. A target that names another tenant than the type's fixed one is a TenantConflictException: it is refused, not ignored.