Chess API written in scala. Immutable and free of side effects.