## Problem to Solve Currently the typeql crate provides declarative macros used for code generation (`string_enum!`, `error_messages!`) in its `common` submodule. ## Proposed Solution Replace declarative macros with more powerful and readable proc-macros (requires a separate crate). Separate other `common` helpers into their own crate so as to have a clearer separation of domains at point of use.