///|
/// Common design recipes. Each recipe returns paths and can be combined in a layer.
pub fn checkerboard(
  width : Double,
  height : Double,
  columns : Int,
  rows : Int,
  first : Color,
  second : Color,
) -> Array[Motif] {
  let result = []
  if columns > 0 && rows > 0 {
    let cell_width = width / columns.to_double()
    let cell_height = height / rows.to_double()
    for row in 0.. Array[Motif] {
  let result = []
  if columns > 0 && rows > 0 {
    let sx = width / columns.to_double()
    let sy = height / rows.to_double()
    for row in 0.. Array[Motif] {
  let result = []
  if spacing > 0.0 {
    let count = (bounds.width + bounds.height) / spacing
    for i in 0.. Array[Motif] {
  let result = []
  let random = Random::new(seed)
  for _ in 0.. Array[Motif] {
  let result = []
  for ring in 0.. Array[Motif] {
  let result = []
  if cols > 0 && rows > 0 {
    let sx = width / cols.to_double()
    let sy = height / rows.to_double()
    for row in 0..