Use pydantic data models for artifact data

Similar to #290 (closed), we can use pydantic data models instead of dicts for the various artifacts

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information