Let's add a "seed" argument to the memory store constructor to allow seeding items into the store on init
Let's add a default value wrapper which returns a default value if the key doesn't exist
Let's add default to the Pydantic adapter for the get call
Let's also add a Pydantic wrapper which uses a type adapter to convert the incoming dictionary to jsonable python