new encoding option for canvas data over json, plus more acceptance tests