Implement a basic algorithmic solution to solve a standard string manipulation problem without using built-in high-level library functions.
Reverse the input character array in place. Do not use built-in reversal, slicing, or high-level string manipulation functions.
The function receives a mutable list of one-character strings and must return the same list after reversing it. Preserve duplicate characters and support empty input.
def reverse_characters(chars):