
;; GraphQL — SX language assimilation
;;
;; Pure SX implementation of the GraphQL query language.
;; Parser, executor, and serializer — all s-expressions,
;; compiled to bytecode by the same kernel.
;;
;; Files:
;;   lib/graphql.sx       — Tokenizer + recursive descent parser
;;   lib/graphql-exec.sx  — Executor (projection, fragments, variables)
;;   spec/tests/test-graphql.sx — 66 tests across 15 suites
;;
;; Hyperscript integration:
;;   fetch gql { query { ... } }         — shorthand query
;;   fetch gql mutation { ... }           — mutation
;;   fetch gql { ... } from "/endpoint"   — custom endpoint
;;
;; Maps to existing SX infrastructure:
;;   Query       → defquery  (IO suspension)
;;   Mutation    → defaction (IO suspension)
;;   Subscription → SSE + signals (reactive islands)
;;   Fragment    → defcomp   (component composition)
;;   Schema      → spec/types.sx (gradual type system)
;;   Resolver    → perform   (CEK IO suspension)

(define graphql-version "0.1.0")

(define
  graphql-features
  (quote
    (queries
      mutations
      subscriptions
      fragments
      inline-fragments
      fragment-spreads
      variables
      variable-defaults
      directives
      directive-arguments
      aliases
      field-arguments
      object-values
      list-values
      enum-values
      block-strings
      comments
      field-projection
      nested-projection
      list-projection
      variable-substitution
      fragment-resolution
      custom-resolvers
      default-io-resolver
      aliased-execution
      multi-root-fields
      named-operations
      operation-introspection
      ast-to-source
      round-trip
      fetch-gql
      fetch-gql-from
      fetch-gql-mutation
      fetch-gql-query)))
