visual metadata programming with the help of typescript type definitions and json