Copyright 2022, Andrei Jiroh Halili and contributors
Code licensed under MPL-2.0, see the LICENSE file at root for details