     """
 
     @type t :: %Struct{name: String.t, fields: %{String.t => %Field{}}}
+
+    @enforce_keys [:name, :fields]
     defstruct name: nil, fields: %{}
 
     import Thrift.Parser.Conversions

    """

    @type t :: %Service{name: String.t, extends: String.t, functions: %{atom => %Function{}}}
    defstruct name: nil, extends: nil, functions: %{}

    import Thrift.Parser.Conversions

    """

    @type t :: %Include{path: String.t}

    @enforce_keys [:path]
    defstruct path: nil

    import Thrift.Parser.Conversions
