@type t() :: %Grax.Id.Schema{ counter: {module(), atom()} | nil, extensions: list() | nil, namespace: Grax.Id.Namespace.t(), schema: module() | [module()], selector: {module(), atom()} | nil, template: template() | :bnode, var_mapping: {module(), atom()} | nil }
@type template() :: struct()