code: public static TypeDeclarationNode recordType(
        LinkedHashMap<String, TypeDeclarationNode> properties) {
      TypeDeclarationNode node = new TypeDeclarationNode(Token.RECORD_TYPE);
      for (Map.Entry<String, TypeDeclarationNode> prop : properties.entrySet()) {
        Node stringKey = IR.stringKey(prop.getKey());
        node.addChildToBack(stringKey);
        if (prop.getValue() != null) {
          stringKey.addChildToFront(prop.getValue());
        }
      }
      return node;
    }
docs: Represents a structural type.
  Closure calls this a Record Type and accepts the syntax
  {@code {myNum: number, myObject}}
  
  <p>Example:
  <pre>
  RECORD_TYPE
  STRING_KEY myNum
  NUMBER_TYPE
  STRING_KEY myObject
  </pre>
  @param properties a map from property name to property type
  @return a new node representing the record type