secondary note: `delete` forces a JIT invalidation, so do we really need it, or can we simply use `this.schema[name] = undefined` instead? (If we don't do any `typeof` checks, but simply rely on JS coercion, we shouldn't have to need `delete`)