Refactor ProductSchema to use Observed directly