     }
 }
 
+/// Represents a `Field` which is an object type in the schema.
 public struct Object: Field, AcceptsArguments, AcceptsSelectionSet {
     public let name: String
     public let alias: String?

    }
}

public protocol GraphQLQuery: QueryConvertible { }

public struct Operation: GraphQLQuery, AcceptsSelectionSet, AcceptsArguments {
    public enum OperationType: QueryConvertible {
        case query
        case mutation

    }
}

/// Any type that accepts a _SelectionSet_ from the GraphQL Language.
///
/// This type must accept `Field`s and `Fragment`s and must include either a set of
/// `fragments` _(FragmentSpread)_ or a set of `fields` or both.
public protocol AcceptsSelectionSet: AcceptsFields {
    var fields: [Field]? { get }
    var fragments: [Fragment]? { get }
