I've sent new version with using object vtbl and mandatory methods—note how we can now override all props, not just indexed props. That's not just to get rid of special checks in callers, but also because it will be needed for those "async" props as outlined above, so it's going to be needed anyway.