Amazingly complete. I am sure that a naive implementer can code from this.