all the things i explained about metadata are implemented in postgrest and they work, and there is no loss of flexibility sinceyou can expose any table you want from any schema by explicitly creating a "mirror" view in the exposed schema. and relations are detected across tables and views and there is a way to deal with collisions.
I am not saying that your way is bad (having a metadata file), just saying there is a way to automatically create it.
- b,c that's good that you don't expose the entire SQL