feat: split ~/.purple into config, data, state and cache on request