code: def mk_definition(defn):
    
    assert len(defn) == 1
    identifier, contents = next(iter(defn.items()))
    fs = [mk_field(f) for f in contents.get('fields', [])]
    return sbp.resolve_type(sbp.Definition(identifier=identifier,
                                           sbp_id=contents.get('id', None),
                                           short_desc=contents.get('short_desc', None),
                                           desc=contents.get('desc', None),
                                           type_id=contents.get('type'),
                                           fields=fs,
                                           public=contents.get('public', True)))
docs: Instantiates a struct or SBP message specification from a parsed
    "AST" of a struct or message.
  
    Parameters
    ----------
    defn : dict
  
    Returns
    ----------
    A Definition or a specialization of a definition, like a Struct