It would be cool to get some help. A good starting point would be make the graph readonly using a TinkerpopStrategy. This implemenation should be straight forward.
My current state on task 3 and 4 are in following branches:
Enforcement in https://github.com/GDATASoftwareAG/janusgraph/tree/schema-strategy
accessiblity in https://github.com/GDATASoftwareAG/janusgraph/tree/schema (Very early state).