Core components for a javascript sgf viewer