# Architecture

- `.` Root project mainly used for generating the CLI, which in turn is used to
  bootstrap the code generation from `dagger`
- `crates/dagger-core` Contains all base types used during actual usage. This is
  where the primary logic lives in which the user interacts (\*disclaimer: most
  stuff haven't moved in here yet.)
- `crates/dagger-sdk` Contains the actual sdk in which the user interacts,
  `dagger-core` is reexported through this API as well.
- `crates/dagger-codegen` This is the bulk of the work, it takes the input
  graphql and spits out the API in which the user interacts, this is heavily
  inspired by other `dagger-sdk's`. It primarily turns graphql into rust code.
