Defines behaviors for plug-in API modules
app() :: [app: atom(), arg_hint: String.t()]
mutation_fields() :: atom()
query_fields() :: atom()
subscription_fields() :: atom()