One of the main goals of this library is to bring the data schema from the
database to the user's form itself. The goal is ambitious but feasible.
Because most of the data tends to come from a limited schema (SQL/NoSQL),
@dreamkit/schema does not aspire to be able to build very complex schemas,
since these complex schemas, in addition to not existing in a database, are
not easy to represent with secure typing in a form.
On the other hand, you may be tired of the number of libraries of this kind
(e.g. zod, yup, valibot), but below I will explain some of the reasons for
this decision.
In the initial stages of development, valibot was considered, but its user
experience is diminished by its aggressive tree shaking system, and if there
is one thing that DreamKit aims to stand out for, it is its UX.
Zod was another alternative, but its large size and performance deficiencies
in TypeScript were important reasons for its discard.