getEffectiveValue<D extends SchemaDefinition, K extends keyof D & string>(
schema: ISchema<D>,
key: K,
): SchemaValue<D[K]> | undefined {
for (const values of this._effectiveChain(session)) {
const raw = values[key];
if (raw === undefined) {
continue;
}