},
values(values) {
for (const key of Object.keys(definition)) {
const value = raw[key];
if (value === undefined) {
continue;
}
// assertion-signature call (per TS4104).
const prop: ISchemaProperty<unknown> = definition[key];
prop.assertValid(value, key);
}
return { ...raw };
validate<K extends keyof D & string>(key: K, value: unknown): value is SchemaValue<D[K]> {
const prop = definition[key];