Big charts refactor

WIP, mostly to avoid working in the solitude :stuck_out_tongue:... but NOT for review yet.
At the first sight I see: a string, a boolean, an optional value. Huh? Optional what? Oh, it means `Option[String]` or `Option[Boolean]`, but I saw `String, Boolean, Option[]` (the last one is non-sense obviously). I wonder if we shouldn't use the same language that we use for properties here.