build a meta box to select child pages of current page

I just begin to work with metabox.

I am able to add a metabox to pages in WP admin.

In this metabox, I need to:

1/display the list of all child pages of the page the user is currently editing, is possible using a tree

2/select pages in this tree, and if possible, by checking an item, sub items should also be checked

3/save the checked pages as metadata of the current page

Which pre built WP functions are best suited for each point?