Flexible, powerful language for procedural text generation