Refactor entities to avoid repetitive entry.
Right now we have a lot of entities, each of them is a flatten dataclass. This means if we want to add/remove/change a field, we need to change many entities. This is repetitive and error-prone.
In this MR:
- The entities are refactored into a nested structure
- Some information associated with an entities are moved into the entity as a property.
- Clean up the BQ table schema: the new table schema can be found here
- Make sure that the prompt engine does not depend on prompt library.
Edited by Hongtao Yang