I'm currently using <T extends { [K in keyof T]: AllowableValue }> - but this is getting very verbose as I have it now in many places.
I can't use Record<string, AllowableValue> because then it requires the given type I am providing as a generic argument to have an index signature, where I want to be able to provide a type such as {x: AllowableValue, y: AllowableValue} with no index signature.