You can encode the input information as you want.
E.g. you could certainly pass the input in a one-hot encoded way, as a single channel image, or even a color image, where each color represents a certain class.
The “right” approach also depends on your current model.
I.e. are you creating a model from scratch? If so, try out different approaches and check their performance on the validation set.
On the other hand, if you are thinking about fine tuning a model, most pretrained models use 3 input channels, so that you could have to adapt your input shape to it if you don’t want to replace/manipulate the first convolution.