Map<String, dynamic> toMap() => { 'continuousPattern': continuousPattern.toMap(), 'discretePattern': discretePattern.map((p) => p.toMap()).toList(), };