This section is only a proposal yet; not part of the draft.
generate();
			break;
		}
		case 1:
		{
			global $configuration;
			$database = read_json("source/data/x.json");
			$data = $database["words"];
			// $data = sql_cross($database["words"], sql_rename($database["words"]));
			$data = sql_select($data, function ($row) {return ($row["language"] == "fs");});
			$table = new class_table
			(
				[
					new class_column("Domain (id)", function ($row) {return $row["domain_id"];}),
					new class_column("Type (id)", function ($row) {return $row["type_id"];}),
					new class_column
					(
						"Folksprak",
						function ($row) {return $row["words"];},
						function ($value) {global $configuration; return _baz($value, "word", "fs");}
					),
					/*
					new class_column
					(
						$configuration["languagemap"][$configuration["target"]],
						function ($row) {global $configuration; return $row["words"][$configuration["target"]];},
						function ($value) {global $configuration; return _baz($value, "word", $configuration["target"]);}
					),
					 */
				],
				$data
			);
			$table->generate();
			break;
		}
		case 2:
		{
			global $configuration;
			$database = read_json("source/data/x.json");
			$data = $database["words"];
			$data = (
				/*
				sql_project
				(
				 */
					sql_select
					(
						sql_rename
						(
							sql_cross
							(
								$data,
								$database["domains"]
							),
							"name",
							"domain_name"
						),
						function ($row) {return ($row["id"] == $row["domain_id"]);}
					)/*,
					["domain_id", "name", "type_id", "language", "words"]
				)
				 */
			);
			$data = (
				/*
				sql_project
				(
				 */
					sql_select
					(
						sql_rename
						(
							sql_cross
							(
								$data,
								$database["types"]
							),
							"name",
							"type_name"
						),
						function ($row) {return ($row["id"] == $row["type_id"]);}
					)/*,
					["domain_name", "name", "language", "words"]
				)
				 */
			);
			$data = (
				sql_select
				(
					$data,
					function ($row) {return ($row["language"] == "fs");}
				)
			);
			$data = (
				sql_add
				(
					$data,
					"type_name/words",
					function ($row)
					{
						return ["key" => $row["type_id"], "value" => $row["words"]];
					}
				)
			);
			$data = (
				sql_project
				(
					$data,
					["domain_name", "type_name/words"]
				)
			);
			$data = (
				sql_group
				(
					$data,
					"domain_name",
					[
						"type_name/words" => function ($args)
						{
							$output = [];
							array_map
							(
								function ($arg) use (&$output)
								{
									$output[$arg["key"]] = $arg["value"];
								},
								$args
							);
							return $output;
						},
					]
				)
			);
			$table = new class_table
			(
				array_merge
				(
					[
						new class_column("Domain", function ($row) {return $row["domain_name"];}),
					],
					array_map
					(
						function ($type)
						{
							return (
								new class_column
								(
									("Type: " . $type["name"]),
									function ($row) use (&$type) {return $row["type_name/words"][$type["id"]];},
									function ($value) {return _baz($value, "word", "fs");}
								)
							);
						},
						$database["types"]
					)
				),
				$data
			);
			$table->generate();
			break;
		}
		default:
		{
			break;
		}
	}
 ?>
Some of these words are very unlikely to ever get used (e.g. ing slag). Nevertheless they exist and are listed for completeness.