key = { ('a'..'z' | 'A'..'Z')+ } val = { (!"\n" ~ ANY)* } kv = { key ~ ": " ~ val ~ "\n" } ok = { "OK" ~ " "? ~ val? } err = {"ACK" ~ " "? ~ val? } response = { kv* ~ (ok | err) }