Given that we have following hierarchy of interfaces: ```typescript interface Person { id: number; name: Name age: number; } interface Name { firstName: string; lastName: string; fullName: string; } ``` I propose that it should be possible to define factories in the following way: ```typescript const nameFactory = Factory.Sync.makeFactory<Name>({ firstName: "Bob", lastName: "Smith", fullName: "Robert J. Smith, Jr.", }); const personFactory = Factory.Sync.makeFactory<Person>({ id: 1, name: nameFactory, age: 10 }); ``` When `personFactory .build()` is invoked with person data, the corresponding subset is passed to `nameFactory.build()`: ```typescript personFactory.build({ id: 9, name: { firstName: "John" } }); // { id: 9 , name: { firstName: "John", lastName: "Smith", fullName: "Robert J. Smith, Jr." }, age: 10} ```