Understanding how IPLD works with a custom schema

I am trying to make my first IPLD graph using multiple schemas. I have several doubts, but the main ones are:

  • How do I implement a node with its own schema? I have to extend interface-ipld-format or directly generate a dag from the json with the data?
  • Is it possible to add attributes to links, such as a name?