pub trait Field {
type Arguments: VariableArguments;
type Directives: VariableDirectives;
type SelectionSet: SelectionSet;
// Required methods
fn alias(&self) -> Option<&str>;
fn name(&self) -> &str;
fn arguments(&self) -> Option<&Self::Arguments>;
fn directives(&self) -> Option<&Self::Directives>;
fn selection_set(&self) -> Option<&Self::SelectionSet>;
// Provided method
fn response_name(&self) -> &str { ... }
}