text: Title: Explore using DMMF types directly
  Body: ## Problem
  
  <!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
  
  Currently, we define our own types based off of the model definitions themselves, however, Prisma also includes the actual type definitions themselves in the DMMF, this is how they generate the types in the JS client.
  
  The fact that we generate our own types independently can result in mismatches between our types and the types that the query engine expects. An example of this is [this issue](https://github.com/prisma/prisma/issues/13892) which is requesting support for `push` for arrays in CockroachDB. Given the current structure, we generate the `push` type for CockroachDB, even though using it will result in an error from the query engine.
  
  ## Suggested solution
  
  <!-- A clear and concise description of what you want to happen. -->
  
  Design a prototype implementing this, see how feasible it is.
  
  Known downsides to changing to this approach:
  - less flexibility
  - unknown how we will support pseudo-recursive types