package Ġcom . project city build . core . contracts Ċ Ċ import Ġcom . project city build . core . entities . CommandInput Ċ import Ġcom . project city build . core . entities . Command Result Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa ĠCommand Ġthat Ġa Ġuser Ġcan Ġuse Ġto Ġperform Ċ Ġ* Ġsome Ġkind Ġof Ġaction . Ċ Ġ* Ċ Ġ* ĠFor Ġexample , Ġperforming Ġa Ġplayer Ġban Ġwould Ġbe Ġhandled Ġby Ċ Ġ* ĠB an Command Ġinherit ing Ġfrom ĠCommand able Ċ Ġ*/ Ċ interface ĠCommand able Ġ{ ĊĊĠĠĠ Ġ// ĠString Ġused Ġto Ġexecute Ġthe Ġcommand Ġin - game Ġ( eg . Ġ" ban ", Ġ" un ban ") ĊĠĠĠ Ġval Ġlabel : ĠString ĊĊĠĠĠ Ġ// ĠAltern ative ĠStrings Ġto Ġexecute Ġthe Ġcommand Ġin - game ĊĠĠĠ Ġval Ġaliases : ĠArray < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠarrayOf () ĊĊĠĠĠ Ġ// ĠPermission Ġnode Ġrequired Ġto Ġexecute Ġthe Ġcommand ĊĠĠĠ Ġval Ġpermission : ĠString ĊĊĠĠĠ Ġsuspend Ġfun Ġexecute ( input : ĠCommand Input ): ĠCommand Result Ċ } ĊĊ